Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6230)

Unified Diff: chrome/test/data/webui/settings/languages_tests.js

Issue 2252323002: MD Settings: reduce complexity and overhead of Languages singleton (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@RemoveLanguageInputMethods
Patch Set: Reduce diff Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/test/data/webui/settings/languages_page_tests.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/webui/settings/languages_tests.js
diff --git a/chrome/test/data/webui/settings/languages_page_tests.js b/chrome/test/data/webui/settings/languages_tests.js
similarity index 66%
rename from chrome/test/data/webui/settings/languages_page_tests.js
rename to chrome/test/data/webui/settings/languages_tests.js
index 068aa1239bdca1f0fe8ce8714f2ac8ca4fc3e3c7..fd7cd659188a936b726d8400eb40bb74febd88ca 100644
--- a/chrome/test/data/webui/settings/languages_page_tests.js
+++ b/chrome/test/data/webui/settings/languages_tests.js
@@ -2,62 +2,88 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-cr.define('settings_languages_page', function() {
- suite('settings-languages-singleton', function() {
- var languageSettingsPrivate;
- var languageHelper;
- var settingsPrefs;
- var fakePrefs = [{
- key: 'intl.app_locale',
- type: chrome.settingsPrivate.PrefType.STRING,
- value: 'en-US',
- }, {
- key: 'intl.accept_languages',
- type: chrome.settingsPrivate.PrefType.STRING,
- value: 'en-US,sw',
- }, {
- key: 'spellcheck.dictionaries',
- type: chrome.settingsPrivate.PrefType.LIST,
- value: ['en-US'],
- }, {
- key: 'translate_blocked_languages',
- type: chrome.settingsPrivate.PrefType.LIST,
- value: ['en-US'],
- }];
- if (cr.isChromeOS) {
- fakePrefs.push({
- key: 'settings.language.preferred_languages',
+cr.define('settings-languages', function() {
+ /**
+ * Data-binds two Polymer properties using the property-changed events and
+ * set/notifyPath API. Useful for testing components which would normally be
+ * used together.
+ * @param {!HTMLElement} el1
+ * @param {!HTMLElement} el2
+ * @param {string} property
+ */
+ function fakeDataBind(el1, el2, property) {
+ var forwardChange = function(el, event) {
+ if (event.detail.hasOwnProperty('path'))
+ el.notifyPath(event.detail.path, event.detail.value);
+ else
+ el.set(property, event.detail.value);
+ };
+ // Add the listeners symmetrically. Polymer will prevent recursion.
+ el1.addEventListener(property + '-changed', forwardChange.bind(null, el2));
+ el2.addEventListener(property + '-changed', forwardChange.bind(null, el1));
+ }
+
+ suite('settings-languages', function() {
+ function getFakePrefs() {
+ var fakePrefs = [{
+ key: 'intl.app_locale',
type: chrome.settingsPrivate.PrefType.STRING,
- value: 'en-US,sw',
- });
- fakePrefs.push({
- key: 'settings.language.preload_engines',
+ value: 'en-US',
+ }, {
+ key: 'intl.accept_languages',
type: chrome.settingsPrivate.PrefType.STRING,
- value: '_comp_ime_fgoepimhcoialccpbmpnnblemnepkkaoxkb:us::eng,' +
- '_comp_ime_fgoepimhcoialccpbmpnnblemnepkkaoxkb:us:dvorak:eng',
- });
- fakePrefs.push({
- key: 'settings.language.enabled_extension_imes',
- type: chrome.settingsPrivate.PrefType.STRING,
- value: '',
- });
+ value: 'en-US,sw',
+ }, {
+ key: 'spellcheck.dictionaries',
+ type: chrome.settingsPrivate.PrefType.LIST,
+ value: ['en-US'],
+ }, {
+ key: 'translate_blocked_languages',
+ type: chrome.settingsPrivate.PrefType.LIST,
+ value: ['en-US'],
+ }];
+ if (cr.isChromeOS) {
+ fakePrefs.push({
+ key: 'settings.language.preferred_languages',
+ type: chrome.settingsPrivate.PrefType.STRING,
+ value: 'en-US,sw',
+ });
+ fakePrefs.push({
+ key: 'settings.language.preload_engines',
+ type: chrome.settingsPrivate.PrefType.STRING,
+ value: '_comp_ime_fgoepimhcoialccpbmpnnblemnepkkaoxkb:us::eng,' +
+ '_comp_ime_fgoepimhcoialccpbmpnnblemnepkkaoxkb:us:dvorak:eng',
+ });
+ fakePrefs.push({
+ key: 'settings.language.enabled_extension_imes',
+ type: chrome.settingsPrivate.PrefType.STRING,
+ value: '',
+ });
+ }
+ return fakePrefs;
}
+ var languageHelper;
+ var languageSettingsPrivate;
+
suiteSetup(function() {
CrSettingsPrefs.deferInitialization = true;
- settingsPrefs = document.createElement('settings-prefs');
- assertTrue(!!settingsPrefs);
- var fakeApi = new settings.FakeSettingsPrivate(fakePrefs);
- settingsPrefs.initializeForTesting(fakeApi);
+ });
+
+ setup(function() {
+ var settingsPrefs = document.createElement('settings-prefs');
+ var settingsPrivate = new settings.FakeSettingsPrivate(getFakePrefs());
+ settingsPrefs.initializeForTesting(settingsPrivate);
languageSettingsPrivate = new settings.FakeLanguageSettingsPrivate();
- languageSettings.languageSettingsPrivateApiForTest =
- languageSettingsPrivate;
+ languageSettingsPrivate.setSettingsPrefs(settingsPrefs);
+ settings.languageSettingsPrivateApiForTest = languageSettingsPrivate;
+ languageHelper = document.createElement('settings-languages');
+
+ // Prefs would normally be data-bound to settings-languages.
+ fakeDataBind(settingsPrefs, languageHelper, 'prefs');
- languageSettingsPrivate.setSettingsPrefs(settingsPrefs);
- LanguageHelperImpl.instance_ = undefined;
- languageHelper = LanguageHelperImpl.getInstance();
return languageHelper.whenReady();
});
« no previous file with comments | « chrome/test/data/webui/settings/languages_page_tests.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698