Commit 706ac3cd authored by My Nguyen's avatar My Nguyen Committed by Commit Bot

Add languages_page_metrics_test_cros for closure compile

Bug: 1000989
Change-Id: I7ae5d8279cb46866e28a4393d8cdc0d3ae21bcd0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2315901Reviewed-by: default avatardpapad <dpapad@chromium.org>
Commit-Queue: My Nguyen <myy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#791994}
parent f308ccfa
...@@ -253,7 +253,9 @@ js_library("lazy_load") { ...@@ -253,7 +253,9 @@ js_library("lazy_load") {
deps = [ deps = [
"autofill_page:autofill_section", "autofill_page:autofill_section",
"autofill_page:payments_section", "autofill_page:payments_section",
"languages_page:languages_browser_proxy.m",
"languages_page:languages_metrics_proxy", "languages_page:languages_metrics_proxy",
"languages_page:languages_page",
"privacy_page:cookies_page", "privacy_page:cookies_page",
"privacy_page:security_page", "privacy_page:security_page",
"site_settings:local_data_browser_proxy", "site_settings:local_data_browser_proxy",
......
...@@ -68,7 +68,7 @@ export {DownloadsBrowserProxyImpl} from './downloads_page/downloads_browser_prox ...@@ -68,7 +68,7 @@ export {DownloadsBrowserProxyImpl} from './downloads_page/downloads_browser_prox
// <if expr="_google_chrome and is_win"> // <if expr="_google_chrome and is_win">
export {IncompatibleApplication, IncompatibleApplicationsBrowserProxyImpl} from './incompatible_applications_page/incompatible_applications_browser_proxy.js'; export {IncompatibleApplication, IncompatibleApplicationsBrowserProxyImpl} from './incompatible_applications_page/incompatible_applications_browser_proxy.js';
// </if> // </if>
export {LanguagesBrowserProxyImpl} from './languages_page/languages_browser_proxy.m.js'; export {LanguagesBrowserProxy, LanguagesBrowserProxyImpl} from './languages_page/languages_browser_proxy.m.js';
// <if expr="chromeos"> // <if expr="chromeos">
export {LanguagesMetricsProxy, LanguagesMetricsProxyImpl, LanguagesPageInteraction} from './languages_page/languages_metrics_proxy.js'; export {LanguagesMetricsProxy, LanguagesMetricsProxyImpl, LanguagesPageInteraction} from './languages_page/languages_metrics_proxy.js';
// </if> // </if>
......
...@@ -393,6 +393,7 @@ js_type_check("closure_compile_local") { ...@@ -393,6 +393,7 @@ js_type_check("closure_compile_local") {
] ]
deps = [ deps = [
":chai_assert", ":chai_assert",
":fake_chrome_event.m",
":mock_timer.m", ":mock_timer.m",
":test_browser_proxy.m", ":test_browser_proxy.m",
":test_plural_string_proxy", ":test_plural_string_proxy",
...@@ -400,6 +401,12 @@ js_type_check("closure_compile_local") { ...@@ -400,6 +401,12 @@ js_type_check("closure_compile_local") {
] ]
} }
js_library("fake_chrome_event.m") {
sources = [ "$root_gen_dir/chrome/test/data/webui/fake_chrome_event.m.js" ]
deps = [ ":chai_assert" ]
extra_deps = [ ":modulize_local" ]
}
js_library("mock_controller.m") { js_library("mock_controller.m") {
sources = [ "$root_gen_dir/chrome/test/data/webui/mock_controller.m.js" ] sources = [ "$root_gen_dir/chrome/test/data/webui/mock_controller.m.js" ]
extra_deps = [ ":modulize_local" ] extra_deps = [ ":modulize_local" ]
......
...@@ -6,13 +6,15 @@ ...@@ -6,13 +6,15 @@
* @fileoverview Fake implementations of ChromeEvent. * @fileoverview Fake implementations of ChromeEvent.
*/ */
// #import {assertFalse, assertTrue} from '../chai_assert.js';
/* #export */ class FakeChromeEvent { /* #export */ class FakeChromeEvent {
constructor() { constructor() {
/** @type {!Set<!Function>} */ /** @type {!Set<!Function>} */
this.listeners_ = new Set(); this.listeners_ = new Set();
} }
/** @param {Function} listener */ /** @param {!Function} listener */
addListener(listener) { addListener(listener) {
assertFalse( assertFalse(
this.listeners_.has(listener), this.listeners_.has(listener),
...@@ -20,7 +22,7 @@ ...@@ -20,7 +22,7 @@
this.listeners_.add(listener); this.listeners_.add(listener);
} }
/** @param {Function} listener */ /** @param {!Function} listener */
removeListener(listener) { removeListener(listener) {
assertTrue( assertTrue(
this.listeners_.has(listener), this.listeners_.has(listener),
...@@ -29,9 +31,9 @@ ...@@ -29,9 +31,9 @@
} }
/** @param {...} args */ /** @param {...} args */
callListeners(...var_args) { callListeners(...args) {
this.listeners_.forEach(function(l) { this.listeners_.forEach(function(l) {
l.apply(null, var_args); l(...args);
}); });
} }
} }
...@@ -97,14 +97,16 @@ js_type_check("closure_compile") { ...@@ -97,14 +97,16 @@ js_type_check("closure_compile") {
#":edit_dictionary_page_test", #":edit_dictionary_page_test",
#":ensure_lazy_loaded", #":ensure_lazy_loaded",
#":extension_controlled_indicator_tests", #":extension_controlled_indicator_tests",
#":fake_input_method_private", ":fake_input_method_private.m",
#":fake_language_settings_private", ":fake_language_settings_private.m",
#":fake_settings_private", ":fake_settings_private.m",
#":help_page_v3_test", #":help_page_v3_test",
#":idle_load_tests", #":idle_load_tests",
#":import_data_dialog_test", #":import_data_dialog_test",
#":incompatible_applications_page_test", #":incompatible_applications_page_test",
#":languages_page_metrics_test_cros", ":languages_page_metrics_test_cros",
#":languages_page_tests", #":languages_page_tests",
#":languages_tests", #":languages_tests",
#":metrics_reporting_tests", #":metrics_reporting_tests",
...@@ -180,8 +182,7 @@ js_type_check("closure_compile") { ...@@ -180,8 +182,7 @@ js_type_check("closure_compile") {
#":test_clear_browsing_data_browser_proxy", #":test_clear_browsing_data_browser_proxy",
#":test_extension_control_browser_proxy", #":test_extension_control_browser_proxy",
":test_hats_browser_proxy", ":test_hats_browser_proxy",
":test_languages_browser_proxy.m",
#":test_languages_browser_proxy",
":test_languages_metrics_proxy", ":test_languages_metrics_proxy",
":test_lifetime_browser_proxy.m", ":test_lifetime_browser_proxy.m",
":test_local_data_browser_proxy", ":test_local_data_browser_proxy",
...@@ -235,6 +236,47 @@ js_library("cookies_page_test") { ...@@ -235,6 +236,47 @@ js_library("cookies_page_test") {
externs_list = [ "$externs_path/mocha-2.5.js" ] externs_list = [ "$externs_path/mocha-2.5.js" ]
} }
js_library("fake_language_settings_private.m") {
sources = [ "$root_gen_dir/chrome/test/data/webui/settings/fake_language_settings_private.m.js" ]
deps = [
"..:chai_assert",
"..:fake_chrome_event.m",
"..:test_browser_proxy.m",
"//ui/webui/resources/js:cr.m",
]
extra_deps = [ ":modulize_local" ]
}
js_library("fake_input_method_private.m") {
sources = [ "$root_gen_dir/chrome/test/data/webui/settings/fake_input_method_private.m.js" ]
extra_deps = [ ":modulize_local" ]
}
js_library("fake_settings_private.m") {
sources = [
"$root_gen_dir/chrome/test/data/webui/settings/fake_settings_private.m.js",
]
deps = [
"..:chai_assert",
"..:fake_chrome_event.m",
]
extra_deps = [ ":modulize_local" ]
}
js_library("languages_page_metrics_test_cros") {
deps = [
":fake_language_settings_private.m",
":fake_settings_private.m",
":test_languages_browser_proxy.m",
":test_languages_metrics_proxy",
"..:chai_assert",
"..:test_util.m",
"//chrome/browser/resources/settings:lazy_load",
"//chrome/browser/resources/settings:settings",
]
externs_list = [ "$externs_path/mocha-2.5.js" ]
}
js_library("passwords_and_autofill_fake_data") { js_library("passwords_and_autofill_fake_data") {
deps = [ deps = [
"..:chai_assert", "..:chai_assert",
...@@ -391,6 +433,18 @@ js_library("test_hats_browser_proxy") { ...@@ -391,6 +433,18 @@ js_library("test_hats_browser_proxy") {
] ]
} }
js_library("test_languages_browser_proxy.m") {
sources = [ "$root_gen_dir/chrome/test/data/webui/settings/test_languages_browser_proxy.m.js" ]
deps = [
":fake_input_method_private.m",
":fake_language_settings_private.m",
"..:test_browser_proxy.m",
"//chrome/browser/resources/settings:lazy_load",
"//ui/webui/resources/js:cr.m",
]
extra_deps = [ ":modulize_local" ]
}
js_library("test_languages_metrics_proxy") { js_library("test_languages_metrics_proxy") {
deps = [ deps = [
"..:test_browser_proxy.m", "..:test_browser_proxy.m",
......
...@@ -12,7 +12,6 @@ cr.define('settings', function() { ...@@ -12,7 +12,6 @@ cr.define('settings', function() {
* during testing have been implemented. * during testing have been implemented.
* *
* @constructor * @constructor
* @implements {InputMethodPrivate}
*/ */
/* #export */ function FakeInputMethodPrivate() {} /* #export */ function FakeInputMethodPrivate() {}
......
...@@ -7,10 +7,10 @@ ...@@ -7,10 +7,10 @@
* for testing. * for testing.
*/ */
// #import {assert} from 'chrome://resources/js/assert.m.js'; // #import {assert, assertNotReached} from 'chrome://resources/js/assert.m.js';
// #import {isChromeOS} from 'chrome://resources/js/cr.m.js'; // #import {isChromeOS} from 'chrome://resources/js/cr.m.js';
// #import {FakeChromeEvent} from 'chrome://test/fake_chrome_event.m.js'; // #import {FakeChromeEvent} from '../fake_chrome_event.m.js';
// #import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js'; // #import {TestBrowserProxy} from '../test_browser_proxy.m.js';
cr.define('settings', function() { cr.define('settings', function() {
/** /**
...@@ -24,31 +24,38 @@ cr.define('settings', function() { ...@@ -24,31 +24,38 @@ cr.define('settings', function() {
'getSpellcheckWords', 'getSpellcheckWords',
]); ]);
// /** @type {!SettingsPrefsElement} */
this.settingsPrefs_ = null;
/** /**
* Called when the pref for the dictionaries used for spell checking * Called when the pref for the dictionaries used for spell checking
* changes or the status of one of the spell check dictionaries changes. * changes or the status of one of the spell check dictionaries changes.
* @type {ChromeEvent} * @type {!ChromeEvent}
*/ */
this.onSpellcheckDictionariesChanged = new FakeChromeEvent(); this.onSpellcheckDictionariesChanged =
/** @type {!ChromeEvent} */ (new FakeChromeEvent());
/** /**
* Called when words are added to and/or removed from the custom spell * Called when words are added to and/or removed from the custom spell
* check dictionary. * check dictionary.
* @type {ChromeEvent} * @type {!ChromeEvent}
*/ */
this.onCustomDictionaryChanged = new FakeChromeEvent(); this.onCustomDictionaryChanged =
/** @type {!ChromeEvent} */ (new FakeChromeEvent());
/** /**
* Called when an input method is added. * Called when an input method is added.
* @type {ChromeEvent} * @type {!ChromeEvent}
*/ */
this.onInputMethodAdded = new FakeChromeEvent(); this.onInputMethodAdded =
/** @type {!ChromeEvent} */ (new FakeChromeEvent());
/** /**
* Called when an input method is removed. * Called when an input method is removed.
* @type {ChromeEvent} * @type {!ChromeEvent}
*/ */
this.onInputMethodRemoved = new FakeChromeEvent(); this.onInputMethodRemoved =
/** @type {!ChromeEvent} */ (new FakeChromeEvent());
/** @type {!Array<!chrome.languageSettingsPrivate.Language>} */ /** @type {!Array<!chrome.languageSettingsPrivate.Language>} */
this.languages = [ this.languages = [
...@@ -160,7 +167,7 @@ cr.define('settings', function() { ...@@ -160,7 +167,7 @@ cr.define('settings', function() {
]; ];
} }
/** @param {SettingsPrefsElement} */ /** @param {SettingsPrefsElement} settingsPrefs */
setSettingsPrefs(settingsPrefs) { setSettingsPrefs(settingsPrefs) {
this.settingsPrefs_ = settingsPrefs; this.settingsPrefs_ = settingsPrefs;
} }
...@@ -174,7 +181,9 @@ cr.define('settings', function() { ...@@ -174,7 +181,9 @@ cr.define('settings', function() {
*/ */
getLanguageList(callback) { getLanguageList(callback) {
setTimeout(function() { setTimeout(function() {
callback(JSON.parse(JSON.stringify(this.languages))); callback(
/** @type {!Array<!chrome.languageSettingsPrivate.Language>} */ (
JSON.parse(JSON.stringify(this.languages))));
}.bind(this)); }.bind(this));
} }
...@@ -184,7 +193,8 @@ cr.define('settings', function() { ...@@ -184,7 +193,8 @@ cr.define('settings', function() {
* @param {string} languageCode * @param {string} languageCode
*/ */
enableLanguage(languageCode) { enableLanguage(languageCode) {
let languageCodes = this.settingsPrefs_.prefs.intl.accept_languages.value; let languageCodes =
this.settingsPrefs_.get('prefs.intl.accept_languages.value');
const languages = languageCodes.split(','); const languages = languageCodes.split(',');
if (languages.indexOf(languageCode) !== -1) { if (languages.indexOf(languageCode) !== -1) {
return; return;
...@@ -204,7 +214,8 @@ cr.define('settings', function() { ...@@ -204,7 +214,8 @@ cr.define('settings', function() {
* @param {string} languageCode * @param {string} languageCode
*/ */
disableLanguage(languageCode) { disableLanguage(languageCode) {
let languageCodes = this.settingsPrefs_.prefs.intl.accept_languages.value; let languageCodes =
this.settingsPrefs_.get('prefs.intl.accept_languages.value');
const languages = languageCodes.split(','); const languages = languageCodes.split(',');
const index = languages.indexOf(languageCode); const index = languages.indexOf(languageCode);
if (index === -1) { if (index === -1) {
...@@ -229,8 +240,8 @@ cr.define('settings', function() { ...@@ -229,8 +240,8 @@ cr.define('settings', function() {
*/ */
setEnableTranslationForLanguage(languageCode, enable) { setEnableTranslationForLanguage(languageCode, enable) {
const index = const index =
this.settingsPrefs_.prefs.translate_blocked_languages.value.indexOf( this.settingsPrefs_.get('prefs.translate_blocked_languages.value')
languageCode); .indexOf(languageCode);
if (enable) { if (enable) {
if (index === -1) { if (index === -1) {
return; return;
...@@ -253,7 +264,8 @@ cr.define('settings', function() { ...@@ -253,7 +264,8 @@ cr.define('settings', function() {
* @param {chrome.languageSettingsPrivate.MoveType} moveType * @param {chrome.languageSettingsPrivate.MoveType} moveType
*/ */
moveLanguage(languageCode, moveType) { moveLanguage(languageCode, moveType) {
let languageCodes = this.settingsPrefs_.prefs.intl.accept_languages.value; let languageCodes =
this.settingsPrefs_.get('prefs.intl.accept_languages.value');
const languages = languageCodes.split(','); const languages = languageCodes.split(',');
const index = languages.indexOf(languageCode); const index = languages.indexOf(languageCode);
...@@ -315,7 +327,8 @@ cr.define('settings', function() { ...@@ -315,7 +327,8 @@ cr.define('settings', function() {
* @param {string} word * @param {string} word
*/ */
addSpellcheckWord(word) { addSpellcheckWord(word) {
this.onCustomDictionaryChanged.callListeners([word], []); /** @type {FakeChromeEvent} */ (this.onCustomDictionaryChanged)
.callListeners([word], []);
} }
/** /**
...@@ -323,7 +336,8 @@ cr.define('settings', function() { ...@@ -323,7 +336,8 @@ cr.define('settings', function() {
* @param {string} word * @param {string} word
*/ */
removeSpellcheckWord(word) { removeSpellcheckWord(word) {
this.onCustomDictionaryChanged.callListeners([], [word]); /** @type {FakeChromeEvent} */ (this.onCustomDictionaryChanged)
.callListeners([], [word]);
} }
/** /**
...@@ -346,7 +360,8 @@ cr.define('settings', function() { ...@@ -346,7 +360,8 @@ cr.define('settings', function() {
} }
callback({ callback({
componentExtensionImes: componentExtensionImes:
JSON.parse(JSON.stringify(this.componentExtensionImes)), /** @type {!Array<!chrome.languageSettingsPrivate.InputMethod>} */ (
JSON.parse(JSON.stringify(this.componentExtensionImes))),
thirdPartyExtensionImes: [], thirdPartyExtensionImes: [],
}); });
} }
...@@ -383,7 +398,8 @@ cr.define('settings', function() { ...@@ -383,7 +398,8 @@ cr.define('settings', function() {
inputMethod.enabled = false; inputMethod.enabled = false;
this.settingsPrefs_.set( this.settingsPrefs_.set(
'prefs.settings.language.preload_engines.value', 'prefs.settings.language.preload_engines.value',
this.settingsPrefs_.prefs.settings.language.preload_engines.value this.settingsPrefs_
.get('prefs.settings.language.preload_engines.value')
.replace(inputMethodId, '')); .replace(inputMethodId, ''));
} }
...@@ -392,12 +408,14 @@ cr.define('settings', function() { ...@@ -392,12 +408,14 @@ cr.define('settings', function() {
* @param {string} languageCode * @param {string} languageCode
*/ */
retryDownloadDictionary(languageCode) { retryDownloadDictionary(languageCode) {
this.onSpellcheckDictionariesChanged.callListeners([ /** @type {FakeChromeEvent} */ (this.onSpellcheckDictionariesChanged)
{languageCode, isReady: false, isDownlading: true}, .callListeners([
]); {languageCode, isReady: false, isDownlading: true},
this.onSpellcheckDictionariesChanged.callListeners([ ]);
{languageCode, isReady: false, downloadFailed: true}, /** @type {FakeChromeEvent} */ (this.onSpellcheckDictionariesChanged)
]); .callListeners([
{languageCode, isReady: false, downloadFailed: true},
]);
} }
} }
......
...@@ -3,13 +3,14 @@ ...@@ -3,13 +3,14 @@
// found in the LICENSE file. // found in the LICENSE file.
// clang-format off // clang-format off
// #import {FakeChromeEvent} from 'chrome://test/fake_chrome_event.m.js'; // #import {assertEquals, assertNotEquals} from '../chai_assert.js';
// #import {FakeChromeEvent} from '../fake_chrome_event.m.js';
// clang-format on // clang-format on
/** @fileoverview Fake implementation of chrome.settingsPrivate for testing. */ /** @fileoverview Fake implementation of chrome.settingsPrivate for testing. */
cr.define('settings', function() { cr.define('settings', function() {
/** /**
* @type {Array<{key: string, * @typedef {Array<{key: string,
* type: chrome.settingsPrivate.PrefType, * type: chrome.settingsPrivate.PrefType,
* values: !Array<*>}>} * values: !Array<*>}>}
*/ */
...@@ -17,8 +18,8 @@ cr.define('settings', function() { ...@@ -17,8 +18,8 @@ cr.define('settings', function() {
/** /**
* Creates a deep copy of the object. * Creates a deep copy of the object.
* @param {!Object} obj * @param {*} obj
* @return {!Object} * @return {*}
*/ */
function deepCopy(obj) { function deepCopy(obj) {
return JSON.parse(JSON.stringify(obj)); return JSON.parse(JSON.stringify(obj));
...@@ -46,7 +47,7 @@ cr.define('settings', function() { ...@@ -46,7 +47,7 @@ cr.define('settings', function() {
} }
// chrome.settingsPrivate override. // chrome.settingsPrivate override.
this.onPrefsChanged = new FakeChromeEvent(); this.onPrefsChanged = /** @type {!ChromeEvent} */ (new FakeChromeEvent());
} }
// chrome.settingsPrivate overrides. // chrome.settingsPrivate overrides.
...@@ -88,7 +89,8 @@ cr.define('settings', function() { ...@@ -88,7 +89,8 @@ cr.define('settings', function() {
getPref(key, callback) { getPref(key, callback) {
const pref = this.prefs[key]; const pref = this.prefs[key];
assertNotEquals(undefined, pref); assertNotEquals(undefined, pref);
callback(deepCopy(pref)); callback(
/** @type {!chrome.settingsPrivate.PrefObject} */ (deepCopy(pref)));
} }
// Functions used by tests. // Functions used by tests.
...@@ -109,7 +111,7 @@ cr.define('settings', function() { ...@@ -109,7 +111,7 @@ cr.define('settings', function() {
/** /**
* Notifies the listeners of pref changes. * Notifies the listeners of pref changes.
* @param {!Object<{key: string, value: *}>} changes * @param {!Array<{key: string, value: *}>} changes
*/ */
sendPrefChanges(changes) { sendPrefChanges(changes) {
const prefs = []; const prefs = [];
...@@ -119,9 +121,15 @@ cr.define('settings', function() { ...@@ -119,9 +121,15 @@ cr.define('settings', function() {
pref.value = change.value; pref.value = change.value;
prefs.push(deepCopy(pref)); prefs.push(deepCopy(pref));
} }
this.onPrefsChanged.callListeners(prefs); /** @type {FakeChromeEvent} */ (this.onPrefsChanged).callListeners(prefs);
} }
/** @override */
getDefaultZoom() {}
/** @override */
setDefaultZoom() {}
// Private methods for use by the fake API. // Private methods for use by the fake API.
/** /**
......
...@@ -6,6 +6,7 @@ import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min ...@@ -6,6 +6,7 @@ import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min
import {LanguagesBrowserProxyImpl, LanguagesMetricsProxyImpl, LanguagesPageInteraction} from 'chrome://settings/lazy_load.js'; import {LanguagesBrowserProxyImpl, LanguagesMetricsProxyImpl, LanguagesPageInteraction} from 'chrome://settings/lazy_load.js';
import {CrSettingsPrefs} from 'chrome://settings/settings.js'; import {CrSettingsPrefs} from 'chrome://settings/settings.js';
import {assertEquals, assertFalse, assertTrue} from '../chai_assert.js';
import {fakeDataBind} from '../test_util.m.js'; import {fakeDataBind} from '../test_util.m.js';
import {getFakeLanguagePrefs} from './fake_language_settings_private.m.js'; import {getFakeLanguagePrefs} from './fake_language_settings_private.m.js';
...@@ -14,21 +15,21 @@ import {TestLanguagesBrowserProxy} from './test_languages_browser_proxy.m.js'; ...@@ -14,21 +15,21 @@ import {TestLanguagesBrowserProxy} from './test_languages_browser_proxy.m.js';
import {TestLanguagesMetricsProxy} from './test_languages_metrics_proxy.js'; import {TestLanguagesMetricsProxy} from './test_languages_metrics_proxy.js';
suite('LanguagesPageMetricsChromeOS', function() { suite('LanguagesPageMetricsChromeOS', function() {
/** @type {?LanguageHelper} */ /** @type {!LanguageHelper} */
let languageHelper = null; let languageHelper;
/** @type {?SettingsLanguagesPageElement} */ /** @type {!SettingsLanguagesPageElement} */
let languagesPage = null; let languagesPage;
/** @type {?LanguagesBrowserProxy} */ /** @type {!TestLanguagesBrowserProxy} */
let browserProxy = null; let browserProxy;
/** @type {?LanguagesMetricsProxy} */ /** @type {!TestLanguagesMetricsProxy} */
let languagesMetricsProxy = null; let languagesMetricsProxy;
suiteSetup(function() { suiteSetup(function() {
PolymerTest.clearBody();
CrSettingsPrefs.deferInitialization = true; CrSettingsPrefs.deferInitialization = true;
}); });
setup(function() { setup(function() {
document.body.innerHTML = '';
const settingsPrefs = document.createElement('settings-prefs'); const settingsPrefs = document.createElement('settings-prefs');
const settingsPrivate = new FakeSettingsPrivate(getFakeLanguagePrefs()); const settingsPrivate = new FakeSettingsPrivate(getFakeLanguagePrefs());
settingsPrefs.initialize(settingsPrivate); settingsPrefs.initialize(settingsPrivate);
...@@ -46,7 +47,8 @@ suite('LanguagesPageMetricsChromeOS', function() { ...@@ -46,7 +47,8 @@ suite('LanguagesPageMetricsChromeOS', function() {
const languageSettingsPrivate = browserProxy.getLanguageSettingsPrivate(); const languageSettingsPrivate = browserProxy.getLanguageSettingsPrivate();
languageSettingsPrivate.setSettingsPrefs(settingsPrefs); languageSettingsPrivate.setSettingsPrefs(settingsPrefs);
languagesPage = document.createElement('settings-languages-page'); languagesPage = /** @type {!SettingsLanguagesPageElement} */ (
document.createElement('settings-languages-page'));
// Prefs would normally be data-bound to settings-languages-page. // Prefs would normally be data-bound to settings-languages-page.
languagesPage.prefs = settingsPrefs.prefs; languagesPage.prefs = settingsPrefs.prefs;
...@@ -58,19 +60,15 @@ suite('LanguagesPageMetricsChromeOS', function() { ...@@ -58,19 +60,15 @@ suite('LanguagesPageMetricsChromeOS', function() {
}); });
}); });
teardown(function() {
PolymerTest.clearBody();
});
test('records when adding languages', async () => { test('records when adding languages', async () => {
languagesPage.$.addLanguages.click(); languagesPage.$$('#addLanguages').click();
flush(); flush();
await languagesMetricsProxy.whenCalled('recordAddLanguages'); await languagesMetricsProxy.whenCalled('recordAddLanguages');
}); });
test('records when clicking edit dictionary', async () => { test('records when clicking edit dictionary', async () => {
languagesPage.$.spellCheckSubpageTrigger.click(); languagesPage.$$('#spellCheckSubpageTrigger').click();
flush(); flush();
assertEquals( assertEquals(
...@@ -79,8 +77,8 @@ suite('LanguagesPageMetricsChromeOS', function() { ...@@ -79,8 +77,8 @@ suite('LanguagesPageMetricsChromeOS', function() {
}); });
test('records when disabling translate.enable toggle', async () => { test('records when disabling translate.enable toggle', async () => {
languageHelper.setPrefValue('translate.enabled', true); languagesPage.setPrefValue('translate.enabled', true);
languagesPage.$.offerTranslateOtherLanguages.click(); languagesPage.$$('#offerTranslateOtherLanguages').click();
flush(); flush();
assertFalse( assertFalse(
...@@ -88,16 +86,16 @@ suite('LanguagesPageMetricsChromeOS', function() { ...@@ -88,16 +86,16 @@ suite('LanguagesPageMetricsChromeOS', function() {
}); });
test('records when enabling translate.enable toggle', async () => { test('records when enabling translate.enable toggle', async () => {
languageHelper.setPrefValue('translate.enabled', false); languagesPage.setPrefValue('translate.enabled', false);
languagesPage.$.offerTranslateOtherLanguages.click(); languagesPage.$$('#offerTranslateOtherLanguages').click();
flush(); flush();
assertTrue(await languagesMetricsProxy.whenCalled('recordToggleTranslate')); assertTrue(await languagesMetricsProxy.whenCalled('recordToggleTranslate'));
}); });
test('records when disabling spell check toggle', async () => { test('records when disabling spell check toggle', async () => {
languageHelper.setPrefValue('browser.enable_spellchecking', true); languagesPage.setPrefValue('browser.enable_spellchecking', true);
languagesPage.$.enableSpellcheckingToggle.click(); languagesPage.$$('#enableSpellcheckingToggle').click();
flush(); flush();
assertFalse( assertFalse(
...@@ -105,8 +103,8 @@ suite('LanguagesPageMetricsChromeOS', function() { ...@@ -105,8 +103,8 @@ suite('LanguagesPageMetricsChromeOS', function() {
}); });
test('records when enabling spell check toggle', async () => { test('records when enabling spell check toggle', async () => {
languageHelper.setPrefValue('browser.enable_spellchecking', false); languagesPage.setPrefValue('browser.enable_spellchecking', false);
languagesPage.$.enableSpellcheckingToggle.click(); languagesPage.$$('#enableSpellcheckingToggle').click();
flush(); flush();
assertTrue( assertTrue(
...@@ -121,7 +119,7 @@ suite('LanguagesPageMetricsChromeOS', function() { ...@@ -121,7 +119,7 @@ suite('LanguagesPageMetricsChromeOS', function() {
flush(); flush();
const languagesCollapse = languagesPage.$.languagesCollapse; const languagesCollapse = languagesPage.$$('#languagesCollapse');
languagesCollapse.opened = true; languagesCollapse.opened = true;
const menuButtons = languagesCollapse.querySelectorAll( const menuButtons = languagesCollapse.querySelectorAll(
...@@ -130,7 +128,7 @@ suite('LanguagesPageMetricsChromeOS', function() { ...@@ -130,7 +128,7 @@ suite('LanguagesPageMetricsChromeOS', function() {
// Chooses the second language to switch system language, // Chooses the second language to switch system language,
// as first language is the default language. // as first language is the default language.
menuButtons[1].click(); menuButtons[1].click();
const actionMenu = languagesPage.$.menu.get(); const actionMenu = languagesPage.$$('#menu').get();
assertTrue(actionMenu.open); assertTrue(actionMenu.open);
const menuItems = actionMenu.querySelectorAll('.dropdown-item'); const menuItems = actionMenu.querySelectorAll('.dropdown-item');
for (const item of menuItems) { for (const item of menuItems) {
...@@ -147,7 +145,7 @@ suite('LanguagesPageMetricsChromeOS', function() { ...@@ -147,7 +145,7 @@ suite('LanguagesPageMetricsChromeOS', function() {
actionMenu.close(); actionMenu.close();
// Chooses restart button after switching system language. // Chooses restart button after switching system language.
const restartButton = languagesPage.$.restartButton; const restartButton = languagesPage.$$('#restartButton');
assertTrue(!!restartButton); assertTrue(!!restartButton);
restartButton.click(); restartButton.click();
......
...@@ -3,10 +3,11 @@ ...@@ -3,10 +3,11 @@
// found in the LICENSE file. // found in the LICENSE file.
// clang-format off // clang-format off
// #import {FakeInputMethodPrivate} from 'chrome://test/settings/fake_input_method_private.m.js'; // #import {FakeInputMethodPrivate} from './fake_input_method_private.m.js';
// #import {FakeLanguageSettingsPrivate} from 'chrome://test/settings/fake_language_settings_private.m.js'; // #import {FakeLanguageSettingsPrivate} from './fake_language_settings_private.m.js';
// #import {isChromeOS, isWindows} from 'chrome://resources/js/cr.m.js'; // #import {isChromeOS, isWindows} from 'chrome://resources/js/cr.m.js';
// #import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js'; // #import {LanguagesBrowserProxy} from 'chrome://settings/lazy_load.js';
// #import {TestBrowserProxy} from '../test_browser_proxy.m.js';
// clang-format on // clang-format on
cr.define('settings', function() { cr.define('settings', function() {
...@@ -26,7 +27,8 @@ cr.define('settings', function() { ...@@ -26,7 +27,8 @@ cr.define('settings', function() {
new settings.FakeLanguageSettingsPrivate(); new settings.FakeLanguageSettingsPrivate();
/** @private {!InputMethodPrivate} */ /** @private {!InputMethodPrivate} */
this.inputMethodPrivate_ = new settings.FakeInputMethodPrivate(); this.inputMethodPrivate_ = /** @type{!InputMethodPrivate} */ (
new settings.FakeInputMethodPrivate());
} }
/** @override */ /** @override */
...@@ -34,11 +36,6 @@ cr.define('settings', function() { ...@@ -34,11 +36,6 @@ cr.define('settings', function() {
return this.languageSettingsPrivate_; return this.languageSettingsPrivate_;
} }
/** @override */
getInputMethodPrivate() {
return this.inputMethodPrivate_;
}
/** @param {!LanguageSettingsPrivate} languageSettingsPrivate */ /** @param {!LanguageSettingsPrivate} languageSettingsPrivate */
setLanguageSettingsPrivate(languageSettingsPrivate) { setLanguageSettingsPrivate(languageSettingsPrivate) {
this.languageSettingsPrivate_ = languageSettingsPrivate; this.languageSettingsPrivate_ = languageSettingsPrivate;
...@@ -59,6 +56,13 @@ cr.define('settings', function() { ...@@ -59,6 +56,13 @@ cr.define('settings', function() {
}; };
} }
if (cr.isChromeOS) {
/** @override */
TestLanguagesBrowserProxy.prototype.getInputMethodPrivate = function() {
return this.inputMethodPrivate_;
};
}
// #cr_define_end // #cr_define_end
return { return {
TestLanguagesBrowserProxy: TestLanguagesBrowserProxy, TestLanguagesBrowserProxy: TestLanguagesBrowserProxy,
......
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