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

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

Issue 2359353002: MD Settings: Polish for Languages main page (Closed)
Patch Set: dbeam feedback Created 4 years, 2 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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 }); 56 });
57 fakePrefs.push({ 57 fakePrefs.push({
58 key: 'settings.language.enabled_extension_imes', 58 key: 'settings.language.enabled_extension_imes',
59 type: chrome.settingsPrivate.PrefType.STRING, 59 type: chrome.settingsPrivate.PrefType.STRING,
60 value: '', 60 value: '',
61 }); 61 });
62 } 62 }
63 return fakePrefs; 63 return fakePrefs;
64 } 64 }
65 65
66 /**
67 * @param {!Array<string>} expected
68 */
69 function assertLanguageOrder(expected) {
70 assertEquals(expected.length, languageHelper.languages.enabled.length);
71 for (var i = 0; i < expected.length; i++) {
72 assertEquals(
73 expected[i], languageHelper.languages.enabled[i].language.code);
74 }
75 }
76
66 var languageHelper; 77 var languageHelper;
67 var languageSettingsPrivate; 78 var languageSettingsPrivate;
68 79
69 suiteSetup(function() { 80 suiteSetup(function() {
70 CrSettingsPrefs.deferInitialization = true; 81 CrSettingsPrefs.deferInitialization = true;
71 }); 82 });
72 83
73 setup(function() { 84 setup(function() {
74 var settingsPrefs = document.createElement('settings-prefs'); 85 var settingsPrefs = document.createElement('settings-prefs');
75 var settingsPrivate = new settings.FakeSettingsPrivate(getFakePrefs()); 86 var settingsPrivate = new settings.FakeSettingsPrivate(getFakePrefs());
(...skipping 10 matching lines...) Expand all
86 97
87 return languageHelper.whenReady(); 98 return languageHelper.whenReady();
88 }); 99 });
89 100
90 test('languages model', function() { 101 test('languages model', function() {
91 for (var i = 0; i < languageSettingsPrivate.languages.length; 102 for (var i = 0; i < languageSettingsPrivate.languages.length;
92 i++) { 103 i++) {
93 assertEquals(languageSettingsPrivate.languages[i].code, 104 assertEquals(languageSettingsPrivate.languages[i].code,
94 languageHelper.languages.supported[i].code); 105 languageHelper.languages.supported[i].code);
95 } 106 }
96 assertEquals(2, languageHelper.languages.enabled.length); 107 assertLanguageOrder(['en-US', 'sw']);
97 assertEquals('en-US',
98 languageHelper.languages.enabled[0].language.code);
99 assertEquals('sw',
100 languageHelper.languages.enabled[1].language.code);
101 assertEquals('en', languageHelper.languages.translateTarget); 108 assertEquals('en', languageHelper.languages.translateTarget);
102 109
103 // TODO(michaelpg): Test other aspects of the model. 110 // TODO(michaelpg): Test other aspects of the model.
104 }); 111 });
105 112
106 test('modifying languages', function() { 113 test('modifying languages', function() {
107 assertTrue(languageHelper.isLanguageEnabled('en-US')); 114 assertTrue(languageHelper.isLanguageEnabled('en-US'));
108 assertTrue(languageHelper.isLanguageEnabled('sw')); 115 assertTrue(languageHelper.isLanguageEnabled('sw'));
109 assertFalse(languageHelper.isLanguageEnabled('en-CA')); 116 assertFalse(languageHelper.isLanguageEnabled('en-CA'));
110 117
111 languageHelper.enableLanguage('en-CA'); 118 languageHelper.enableLanguage('en-CA');
112 assertTrue(languageHelper.isLanguageEnabled('en-CA')); 119 assertTrue(languageHelper.isLanguageEnabled('en-CA'));
113 languageHelper.disableLanguage('sw'); 120 languageHelper.disableLanguage('sw');
114 assertFalse(languageHelper.isLanguageEnabled('sw')); 121 assertFalse(languageHelper.isLanguageEnabled('sw'));
115 122
116 // TODO(michaelpg): Test other modifications. 123 // TODO(michaelpg): Test other modifications.
117 }); 124 });
118 125
119 test('reorder languages', function() { 126 test('reorder languages', function() {
127 // New language is added at the end.
120 languageHelper.enableLanguage('en-CA'); 128 languageHelper.enableLanguage('en-CA');
121 assertEquals('en-US', languageHelper.languages.enabled[0].language.code); 129 assertLanguageOrder(['en-US', 'sw', 'en-CA']);
122 assertEquals('sw', languageHelper.languages.enabled[1].language.code);
123 assertEquals('en-CA', languageHelper.languages.enabled[2].language.code);
124 130
125 // Can move a language up. 131 // Can move a language up.
126 languageHelper.moveLanguage('en-CA', -1); 132 languageHelper.moveLanguage('en-CA', -1);
127 assertEquals('en-US', languageHelper.languages.enabled[0].language.code); 133 assertLanguageOrder(['en-US', 'en-CA', 'sw']);
128 assertEquals('en-CA', languageHelper.languages.enabled[1].language.code);
129 assertEquals('sw', languageHelper.languages.enabled[2].language.code);
130 134
131 // Can move a language down. 135 // Can move a language down.
132 languageHelper.moveLanguage('en-US', 1); 136 languageHelper.moveLanguage('en-US', 1);
133 assertEquals('en-CA', languageHelper.languages.enabled[0].language.code); 137 assertLanguageOrder(['en-CA', 'en-US', 'sw']);
134 assertEquals('en-US', languageHelper.languages.enabled[1].language.code); 138
135 assertEquals('sw', languageHelper.languages.enabled[2].language.code); 139 // Can move a language to the front.
140 languageHelper.moveLanguageToFront('sw');
141 var expectedOrder = ['sw', 'en-CA', 'en-US'];
142 assertLanguageOrder(expectedOrder);
136 143
137 // Moving the first language up has no effect. 144 // Moving the first language up has no effect.
138 languageHelper.moveLanguage('en-CA', -1); 145 languageHelper.moveLanguage('sw', -1);
139 assertEquals('en-CA', languageHelper.languages.enabled[0].language.code); 146 assertLanguageOrder(expectedOrder);
140 assertEquals('en-US', languageHelper.languages.enabled[1].language.code); 147
141 assertEquals('sw', languageHelper.languages.enabled[2].language.code); 148 // Moving the first language to top has no effect.
149 languageHelper.moveLanguageToFront('sw');
150 assertLanguageOrder(expectedOrder);
142 151
143 // Moving the last language down has no effect. 152 // Moving the last language down has no effect.
144 languageHelper.moveLanguage('sw', 1); 153 languageHelper.moveLanguage('en-US', 1);
145 assertEquals('en-CA', languageHelper.languages.enabled[0].language.code); 154 assertLanguageOrder(expectedOrder);
146 assertEquals('en-US', languageHelper.languages.enabled[1].language.code);
147 assertEquals('sw', languageHelper.languages.enabled[2].language.code);
148 }); 155 });
149 156
150 if (cr.isChromeOS) { 157 if (cr.isChromeOS) {
151 test('modifying input methods', function() { 158 test('modifying input methods', function() {
152 assertEquals(2, languageHelper.languages.inputMethods.enabled.length); 159 assertEquals(2, languageHelper.languages.inputMethods.enabled.length);
153 var inputMethods = languageHelper.getInputMethodsForLanguage('en-US'); 160 var inputMethods = languageHelper.getInputMethodsForLanguage('en-US');
154 assertEquals(3, inputMethods.length); 161 assertEquals(3, inputMethods.length);
155 162
156 // We can remove one input method. 163 // We can remove one input method.
157 var dvorak = 164 var dvorak =
(...skipping 19 matching lines...) Expand all
177 // The US Swahili keyboard should still be enabled, because it supports 184 // The US Swahili keyboard should still be enabled, because it supports
178 // English which is still enabled. 185 // English which is still enabled.
179 assertTrue(languageHelper.languages.inputMethods.enabled.some( 186 assertTrue(languageHelper.languages.inputMethods.enabled.some(
180 function(inputMethod) { 187 function(inputMethod) {
181 return inputMethod.id == swUS; 188 return inputMethod.id == swUS;
182 })); 189 }));
183 }); 190 });
184 } 191 }
185 }); 192 });
186 }); 193 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698