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

Side by Side Diff: chrome/test/data/webui/settings/languages_tests.js

Issue 2254113002: MD Settings: reduce complexity and overhead of prefs singleton (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@SimplifyLanguages
Patch Set: Nit 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 cr.define('settings-languages', function() { 5 cr.define('settings-languages', function() {
6 /** 6 /**
7 * Data-binds two Polymer properties using the property-changed events and 7 * Data-binds two Polymer properties using the property-changed events and
8 * set/notifyPath API. Useful for testing components which would normally be 8 * set/notifyPath API. Useful for testing components which would normally be
9 * used together. 9 * used together.
10 * @param {!HTMLElement} el1 10 * @param {!HTMLElement} el1
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 var languageHelper; 66 var languageHelper;
67 var languageSettingsPrivate; 67 var languageSettingsPrivate;
68 68
69 suiteSetup(function() { 69 suiteSetup(function() {
70 CrSettingsPrefs.deferInitialization = true; 70 CrSettingsPrefs.deferInitialization = true;
71 }); 71 });
72 72
73 setup(function() { 73 setup(function() {
74 var settingsPrefs = document.createElement('settings-prefs'); 74 var settingsPrefs = document.createElement('settings-prefs');
75 var settingsPrivate = new settings.FakeSettingsPrivate(getFakePrefs()); 75 var settingsPrivate = new settings.FakeSettingsPrivate(getFakePrefs());
76 settingsPrefs.initializeForTesting(settingsPrivate); 76 settingsPrefs.initialize(settingsPrivate);
77 77
78 languageSettingsPrivate = new settings.FakeLanguageSettingsPrivate(); 78 languageSettingsPrivate = new settings.FakeLanguageSettingsPrivate();
79 languageSettingsPrivate.setSettingsPrefs(settingsPrefs); 79 languageSettingsPrivate.setSettingsPrefs(settingsPrefs);
80 settings.languageSettingsPrivateApiForTest = languageSettingsPrivate; 80 settings.languageSettingsPrivateApiForTest = languageSettingsPrivate;
81 81
82 languageHelper = document.createElement('settings-languages'); 82 languageHelper = document.createElement('settings-languages');
83 83
84 // Prefs would normally be data-bound to settings-languages. 84 // Prefs would normally be data-bound to settings-languages.
85 fakeDataBind(settingsPrefs, languageHelper, 'prefs'); 85 fakeDataBind(settingsPrefs, languageHelper, 'prefs');
86 86
(...skipping 23 matching lines...) Expand all
110 110
111 languageHelper.enableLanguage('en-CA'); 111 languageHelper.enableLanguage('en-CA');
112 assertTrue(languageHelper.isLanguageEnabled('en-CA')); 112 assertTrue(languageHelper.isLanguageEnabled('en-CA'));
113 languageHelper.disableLanguage('sw'); 113 languageHelper.disableLanguage('sw');
114 assertFalse(languageHelper.isLanguageEnabled('sw')); 114 assertFalse(languageHelper.isLanguageEnabled('sw'));
115 115
116 // TODO(michaelpg): Test other modifications. 116 // TODO(michaelpg): Test other modifications.
117 }); 117 });
118 118
119 test('reorder languages', function() { 119 test('reorder languages', function() {
120 languageHelper.enableLanguage('sw'); 120 languageHelper.enableLanguage('en-CA');
121 assertEquals('en-US', languageHelper.languages.enabled[0].language.code);
122 assertEquals('sw', languageHelper.languages.enabled[1].language.code);
123 assertEquals('en-CA', languageHelper.languages.enabled[2].language.code);
124
125 // Can move a language up.
126 languageHelper.moveLanguage('en-CA', -1);
121 assertEquals('en-US', languageHelper.languages.enabled[0].language.code); 127 assertEquals('en-US', languageHelper.languages.enabled[0].language.code);
122 assertEquals('en-CA', languageHelper.languages.enabled[1].language.code); 128 assertEquals('en-CA', languageHelper.languages.enabled[1].language.code);
123 assertEquals('sw', languageHelper.languages.enabled[2].language.code); 129 assertEquals('sw', languageHelper.languages.enabled[2].language.code);
124 130
125 // Can move a language up.
126 languageHelper.moveLanguage('sw', -1);
127 assertEquals('en-US', languageHelper.languages.enabled[0].language.code);
128 assertEquals('sw', languageHelper.languages.enabled[1].language.code);
129 assertEquals('en-CA', languageHelper.languages.enabled[2].language.code);
130
131 // Can move a language down. 131 // Can move a language down.
132 languageHelper.moveLanguage('en-US', 1); 132 languageHelper.moveLanguage('en-US', 1);
133 assertEquals('sw', languageHelper.languages.enabled[0].language.code); 133 assertEquals('en-CA', languageHelper.languages.enabled[0].language.code);
134 assertEquals('en-US', languageHelper.languages.enabled[1].language.code); 134 assertEquals('en-US', languageHelper.languages.enabled[1].language.code);
135 assertEquals('en-CA', languageHelper.languages.enabled[2].language.code); 135 assertEquals('sw', languageHelper.languages.enabled[2].language.code);
136 136
137 // Moving the first language up has no effect. 137 // Moving the first language up has no effect.
138 languageHelper.moveLanguage('sw', -1); 138 languageHelper.moveLanguage('en-CA', -1);
139 assertEquals('sw', languageHelper.languages.enabled[0].language.code); 139 assertEquals('en-CA', languageHelper.languages.enabled[0].language.code);
140 assertEquals('en-US', languageHelper.languages.enabled[1].language.code); 140 assertEquals('en-US', languageHelper.languages.enabled[1].language.code);
141 assertEquals('en-CA', languageHelper.languages.enabled[2].language.code); 141 assertEquals('sw', languageHelper.languages.enabled[2].language.code);
142 142
143 // Moving the last language down has no effect. 143 // Moving the last language down has no effect.
144 languageHelper.moveLanguage('en-CA', 1); 144 languageHelper.moveLanguage('sw', 1);
145 assertEquals('sw', languageHelper.languages.enabled[0].language.code); 145 assertEquals('en-CA', languageHelper.languages.enabled[0].language.code);
146 assertEquals('en-US', languageHelper.languages.enabled[1].language.code); 146 assertEquals('en-US', languageHelper.languages.enabled[1].language.code);
147 assertEquals('en-CA', languageHelper.languages.enabled[2].language.code); 147 assertEquals('sw', languageHelper.languages.enabled[2].language.code);
148 }); 148 });
149 149
150 if (cr.isChromeOS) { 150 if (cr.isChromeOS) {
151 test('modifying input methods', function() { 151 test('modifying input methods', function() {
152 assertEquals(2, languageHelper.languages.inputMethods.enabled.length); 152 assertEquals(2, languageHelper.languages.inputMethods.enabled.length);
153 var inputMethods = languageHelper.getInputMethodsForLanguage('en-US'); 153 var inputMethods = languageHelper.getInputMethodsForLanguage('en-US');
154 assertEquals(3, inputMethods.length); 154 assertEquals(3, inputMethods.length);
155 155
156 // We can remove one input method. 156 // We can remove one input method.
157 var dvorak = 157 var dvorak =
(...skipping 19 matching lines...) Expand all
177 // The US Swahili keyboard should still be enabled, because it supports 177 // The US Swahili keyboard should still be enabled, because it supports
178 // English which is still enabled. 178 // English which is still enabled.
179 assertTrue(languageHelper.languages.inputMethods.enabled.some( 179 assertTrue(languageHelper.languages.inputMethods.enabled.some(
180 function(inputMethod) { 180 function(inputMethod) {
181 return inputMethod.id == swUS; 181 return inputMethod.id == swUS;
182 })); 182 }));
183 }); 183 });
184 } 184 }
185 }); 185 });
186 }); 186 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698