Commit 538419f3 authored by Ryan Cui's avatar Ryan Cui Committed by Commit Bot

Browser tests for Google Assistant Web UI settings

Bug: 727873
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: Ieca4aab7371e7208d49c78795f8da076bd237838
Reviewed-on: https://chromium-review.googlesource.com/587991
Commit-Queue: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: default avatarDemetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#491632}
parent a138ec70
<link rel="import" href="chrome://resources/html/polymer.html">
<link rel="import" href="chrome://resources/html/cr.html">
<link rel="import" href="chrome://resources/html/i18n_behavior.html">
<link rel="import" href="chrome://resources/polymer/v1_0/paper-icon-button/paper-icon-button-light.html">
<link rel="import" href="google_assistant_browser_proxy.html">
<link rel="import" href="../controls/settings_toggle_button.html">
<link rel="import" href="../i18n_setup.html">
<link rel="import" href="../prefs/prefs.html">
<link rel="import" href="../prefs/prefs_behavior.html">
<link rel="import" href="../settings_shared_css.html">
......@@ -28,7 +32,7 @@
on-change="onGoogleAssistantContextEnableChange_">
</settings-toggle-button>
</div>
<div class="settings-box"
<div id="googleAssistantSettings" class="settings-box"
on-tap="onGoogleAssistantSettingsTapped_" actionable>
<div class="start">
$i18n{googleAssistantSettings}
......
......@@ -1701,6 +1701,36 @@ TEST_F('CrSettingsDateTimePageTest', 'All', function() {
mocha.run();
});
/**
* @constructor
* @extends {CrSettingsBrowserTest}
*/
function CrSettingsGoogleAssistantPageTest() {}
CrSettingsGoogleAssistantPageTest.prototype = {
__proto__: CrSettingsBrowserTest.prototype,
/** @override */
browsePreload:
'chrome://md-settings/google_assistant_page/google_assistant_page.html',
/** @override */
commandLineSwitches: [{
switchName: 'enable-voice-interaction',
}],
/** @override */
extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([
ROOT_PATH + 'ui/webui/resources/js/promise_resolver.js',
'../test_browser_proxy.js',
'google_assistant_page_test.js',
]),
};
TEST_F('CrSettingsGoogleAssistantPageTest', 'All', function() {
mocha.run();
});
GEN('#endif');
/**
......
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @implements {settings.GoogleAssistantBrowserProxy}
*/
class TestGoogleAssistantBrowserProxy extends TestBrowserProxy {
constructor() {
super([
'setGoogleAssistantEnabled',
'setGoogleAssistantContextEnabled',
'showGoogleAssistantSettings',
]);
}
/** @override */
setGoogleAssistantEnabled(enabled) {
this.methodCalled('setGoogleAssistantEnabled', enabled);
}
/** @override */
setGoogleAssistantContextEnabled(enabled) {
this.methodCalled('setGoogleAssistantContextEnabled', enabled);
}
/** @override */
showGoogleAssistantSettings() {
this.methodCalled('showGoogleAssistantSettings');
}
}
suite('GoogleAssistantHandler', function() {
/** @type {SettingsGoogleAssistantPageElement} */
var page = null;
/** @type {?TestGoogleAssistantBrowserProxy} */
var browserProxy = null;
setup(function() {
browserProxy = new TestGoogleAssistantBrowserProxy();
settings.GoogleAssistantBrowserProxyImpl.instance_ = browserProxy;
PolymerTest.clearBody();
var prefElement = document.createElement('settings-prefs');
document.body.appendChild(prefElement);
return CrSettingsPrefs.initialized.then(function() {
page = document.createElement('settings-google-assistant-page');
page.prefs = prefElement.prefs;
document.body.appendChild(page);
});
});
teardown(function() {
page.remove();
});
test('toggleAssistant', function() {
Polymer.dom.flush();
var button = page.$$('#googleAssistantEnable');
assertTrue(!!button);
assertFalse(button.disabled);
assertFalse(button.checked);
// Tap the enable toggle button and ensure the state becomes enabled.
MockInteractions.tap(button.$.control);
Polymer.dom.flush();
assertTrue(button.checked);
return browserProxy.whenCalled('setGoogleAssistantEnabled')
.then(function(arg) {
assertTrue(arg);
});
});
test('toggleAssistantContext', function() {
var button = page.$$('#googleAssistantContextEnable');
assertFalse(!!button);
page.setPrefValue('settings.voice_interaction.enabled', true);
Polymer.dom.flush();
button = page.$$('#googleAssistantContextEnable');
assertTrue(!!button);
assertFalse(button.disabled);
assertFalse(button.checked);
MockInteractions.tap(button.$.control);
Polymer.dom.flush();
assertTrue(button.checked);
return browserProxy.whenCalled('setGoogleAssistantContextEnabled')
.then(function(arg) {
assertTrue(arg);
});
;
});
test('tapOnAssistantSettings', function() {
var button = page.$$('#googleAssistantSettings');
assertFalse(!!button);
page.setPrefValue('settings.voice_interaction.enabled', true);
Polymer.dom.flush();
button = page.$$('#googleAssistantSettings');
assertTrue(!!button);
MockInteractions.tap(button);
Polymer.dom.flush();
return browserProxy.whenCalled('showGoogleAssistantSettings');
});
});
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment