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

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

Issue 2663083002: MD Settings: Migrate enable-translation toggle from non-MD settings page. (Closed)
Patch Set: fix tests Created 3 years, 10 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
« no previous file with comments | « chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 /** @fileoverview Suite of tests for settings-languages-page. */ 5 /** @fileoverview Suite of tests for settings-languages-page. */
6 6
7 /** @const {string} Path to root from chrome/test/data/webui/settings/. */ 7 /** @const {string} Path to root from chrome/test/data/webui/settings/. */
8 var ROOT_PATH = '../../../../../'; 8 var ROOT_PATH = '../../../../../';
9 9
10 // Polymer BrowserTest fixture. 10 // Polymer BrowserTest fixture.
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 assertEquals(1, separator.offsetHeight); 228 assertEquals(1, separator.offsetHeight);
229 229
230 // Disable Translate. On platforms that can't change the UI language, 230 // Disable Translate. On platforms that can't change the UI language,
231 // this hides all the checkboxes, so the separator isn't needed. 231 // this hides all the checkboxes, so the separator isn't needed.
232 // Chrome OS and Windows still show a checkbox and thus the separator. 232 // Chrome OS and Windows still show a checkbox and thus the separator.
233 languageHelper.setPrefValue('translate.enabled', false); 233 languageHelper.setPrefValue('translate.enabled', false);
234 assertEquals( 234 assertEquals(
235 cr.isChromeOS || cr.isWindows ? 1 : 0, separator.offsetHeight); 235 cr.isChromeOS || cr.isWindows ? 1 : 0, separator.offsetHeight);
236 }); 236 });
237 237
238 test('toggle translate', function(done) { 238 test('test translate.enable toggle', function() {
239 languageHelper.setPrefValue('translate.enabled', true);
240 var toggle = languagesPage.$.offerTranslateOtherLangs.root
241 .querySelectorAll('paper-toggle-button')[0];
michaelpg 2017/02/01 23:30:48 shorter: .root.querySelector('paper-toggle-but
scottchen 2017/02/01 23:33:50 I think I'll leave it like this, just in case some
michaelpg 2017/02/01 23:41:13 They are exactly equivalent -- querySelector retur
242 assertTrue(!!toggle);
243
244 // Clicking on toggle switch it to false.
245 MockInteractions.tap(toggle);
246 var newToggleValue = languageHelper.prefs.translate.enabled.value;
247 assertFalse(newToggleValue);
248
249 // Clicking on toggle switch it to true again.
250 MockInteractions.tap(toggle);
251 newToggleValue = languageHelper.prefs.translate.enabled.value;
252 assertTrue(newToggleValue);
253 });
254
255 test('toggle translate for a specific language', function(done) {
239 // Enable Translate so the menu always shows the Translate checkbox. 256 // Enable Translate so the menu always shows the Translate checkbox.
240 languageHelper.setPrefValue('translate.enabled', true); 257 languageHelper.setPrefValue('translate.enabled', true);
241 languagesPage.set('languages.translateTarget', 'foo'); 258 languagesPage.set('languages.translateTarget', 'foo');
242 languagesPage.set('languages.enabled.1.supportsTranslate', true); 259 languagesPage.set('languages.enabled.1.supportsTranslate', true);
243 260
244 var languageOptionsDropdownTrigger = 261 var languageOptionsDropdownTrigger =
245 languagesCollapse.querySelectorAll('paper-icon-button')[1]; 262 languagesCollapse.querySelectorAll('paper-icon-button')[1];
246 assertTrue(!!languageOptionsDropdownTrigger); 263 assertTrue(!!languageOptionsDropdownTrigger);
247 MockInteractions.tap(languageOptionsDropdownTrigger); 264 MockInteractions.tap(languageOptionsDropdownTrigger);
248 assertTrue(actionMenu.open); 265 assertTrue(actionMenu.open);
249 266
250 // Toggle the translate option. 267 // Toggle the translate option.
251 var translateOption = actionMenu.querySelector('#offerTranslations'); 268 var translateOption = actionMenu.querySelector('#offerTranslations');
252 assertTrue(!!translateOption); 269 assertTrue(!!translateOption);
253 assertFalse(translateOption.disabled); 270 assertFalse(translateOption.disabled);
254 MockInteractions.tap(translateOption); 271 MockInteractions.tap(translateOption);
255 272
256 // Menu should stay open briefly. 273 // Menu should stay open briefly.
257 assertTrue(actionMenu.open); 274 assertTrue(actionMenu.open);
258 // Guaranteed to run later than the menu close delay. 275 // Guaranteed to run later than the menu close delay.
259 setTimeout(function() { 276 setTimeout(function() {
260 assertFalse(actionMenu.open); 277 assertFalse(actionMenu.open);
261 done(); 278 done();
262 }, settings.kMenuCloseDelay + 1); 279 }, settings.kMenuCloseDelay + 1);
263 }); 280 });
264 281
282 test('disable translate hides language-specific option', function() {
283 // Disables translate.
284 languageHelper.setPrefValue('translate.enabled', false);
285 languagesPage.set('languages.translateTarget', 'foo');
286 languagesPage.set('languages.enabled.1.supportsTranslate', true);
287
288 // Makes sure language-specific menu exists.
289 var languageOptionsDropdownTrigger =
290 languagesCollapse.querySelectorAll('paper-icon-button')[1];
291 assertTrue(!!languageOptionsDropdownTrigger);
292 MockInteractions.tap(languageOptionsDropdownTrigger);
293 assertTrue(actionMenu.open);
294
295 // The language-specific translation option should be hidden.
296 var translateOption = actionMenu.querySelector('#offerTranslations');
297 assertTrue(!!translateOption);
298 assertTrue(translateOption.hidden);
299 });
300
265 test('remove language', function() { 301 test('remove language', function() {
266 var numEnabled = languagesPage.languages.enabled.length; 302 var numEnabled = languagesPage.languages.enabled.length;
267 303
268 // Enabled a language which we can then disable. 304 // Enabled a language which we can then disable.
269 var newLanguage = getAvailableLanguage(); 305 var newLanguage = getAvailableLanguage();
270 languageHelper.enableLanguage(newLanguage.code); 306 languageHelper.enableLanguage(newLanguage.code);
271 307
272 // Wait for the language to be enabled. 308 // Wait for the language to be enabled.
273 return whenNumEnabledLanguagesBecomes(numEnabled + 1).then(function() { 309 return whenNumEnabledLanguagesBecomes(numEnabled + 1).then(function() {
274 // Populate the dom-repeat. 310 // Populate the dom-repeat.
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 assertTrue(!!languagesPage.$$('settings-edit-dictionary-page')); 384 assertTrue(!!languagesPage.$$('settings-edit-dictionary-page'));
349 } 385 }
350 }); 386 });
351 }.bind(this)); 387 }.bind(this));
352 388
353 // TODO(michaelpg): Test more aspects of the languages UI. 389 // TODO(michaelpg): Test more aspects of the languages UI.
354 390
355 // Run all registered tests. 391 // Run all registered tests.
356 mocha.run(); 392 mocha.run();
357 }); 393 });
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698