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

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

Issue 2359353002: MD Settings: Polish for Languages main page (Closed)
Patch Set: dbeam feedback Created 4 years, 3 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
Index: chrome/test/data/webui/settings/languages_page_browsertest.js
diff --git a/chrome/test/data/webui/settings/languages_page_browsertest.js b/chrome/test/data/webui/settings/languages_page_browsertest.js
index d03d93da522b827b798ace9778c21e6250f6074f..ad427df1df8026e2f55f5f7c160ff517d8d00345 100644
--- a/chrome/test/data/webui/settings/languages_page_browsertest.js
+++ b/chrome/test/data/webui/settings/languages_page_browsertest.js
@@ -87,6 +87,7 @@ TEST_F('SettingsLanguagesPageBrowserTest', 'MAYBE_LanguagesPage', function() {
languagesPage = assert(
languagesSection.querySelector('settings-languages-page'));
languagesCollapse = languagesPage.$.languagesCollapse;
+ languagesCollapse.opened = true;
languageHelper = languagesPage.languageHelper;
return languageHelper.whenReady();
@@ -193,56 +194,88 @@ TEST_F('SettingsLanguagesPageBrowserTest', 'MAYBE_LanguagesPage', function() {
});
});
- test('should not set UI language', function() {
- var languageOptionsDropdownTrigger = languagesCollapse.querySelector(
- 'paper-icon-button');
- assertTrue(!!languageOptionsDropdownTrigger);
+ suite('language menu', function() {
+ var origTranslateEnabled;
- // This shouldn't get called.
- languageHelper.setUILanguage = assertNotReached;
+ suiteSetup(function() {
+ // Cache the value of Translate to avoid side effects.
+ origTranslateEnabled = languageHelper.prefs.translate.enabled.value;
+ });
- // Tap the menu trigger twice to open and close the menu.
- MockInteractions.tap(languageOptionsDropdownTrigger);
- MockInteractions.tap(languageOptionsDropdownTrigger);
+ suiteTeardown(function() {
+ var cur = languageHelper.prefs.translate.enabled.value;
+ // Restore the value of Translate.
+ languageHelper.setPrefValue('translate.enabled', origTranslateEnabled);
+ cur = languageHelper.prefs.translate.enabled.value;
+ });
- languageHelper.setUILanguage = languageHelper.__proto__.setUILanguage;
- });
+ test('structure', function(done) {
+ var languageOptionsDropdownTrigger = languagesCollapse.querySelector(
+ 'paper-icon-button');
+ assertTrue(!!languageOptionsDropdownTrigger);
+ MockInteractions.tap(languageOptionsDropdownTrigger);
+ var languageMenu = assert(languagesPage.$$('cr-shared-menu'));
- test('remove language', function() {
- var numEnabled = languagesPage.languages.enabled.length;
+ listenOnce(languageMenu, 'iron-overlay-opened', function() {
+ assertTrue(languageMenu.menuOpen);
- // Enabled a language which we can then disable.
- var newLanguage = getAvailableLanguage();
- languageHelper.enableLanguage(newLanguage.code);
+ // Enable Translate so the menu always shows the Translate checkbox.
+ languageHelper.setPrefValue('translate.enabled', true);
- // Wait for the language to be enabled.
- return whenNumEnabledLanguagesBecomes(numEnabled + 1).then(function() {
- // Populate the dom-repeat.
- Polymer.dom.flush();
+ var separator = languageMenu.querySelector('hr');
+ assertEquals(1, separator.offsetHeight);
- // Find the new language item.
- var items = languagesCollapse.querySelectorAll('.list-item');
- var domRepeat = assert(
- languagesCollapse.querySelector('template[is="dom-repeat"]'));
- var item = Array.from(items).find(function(el) {
- return domRepeat.itemForElement(el) &&
- domRepeat.itemForElement(el).language == newLanguage;
+ // Disable Translate. On platforms that can't change the UI language,
+ // this hides all the checkboxes, so the separator isn't needed.
+ // Chrome OS and Windows still show a checkbox and thus the separator.
+ languageHelper.setPrefValue('translate.enabled', false);
+ if (cr.isChromeOS || cr.isWindows)
+ assertEquals(1, separator.offsetHeight);
+ else
+ assertEquals(0, separator.offsetHeight);
+
+ MockInteractions.tap(languageOptionsDropdownTrigger);
+ assertFalse(languageMenu.menuOpen);
+ done();
});
+ });
- // Open the menu and select Remove.
- MockInteractions.tap(item.querySelector('paper-icon-button'));
+ test('remove language', function() {
+ var numEnabled = languagesPage.languages.enabled.length;
- var languageMenu = assert(languagesPage.$$('cr-shared-menu'));
- assertTrue(languageMenu.menuOpen);
- var removeMenuItem = assert(languageMenu.querySelector(
- '.dropdown-item:last-child'));
- assertFalse(removeMenuItem.disabled);
- MockInteractions.tap(removeMenuItem);
- assertFalse(languageMenu.menuOpen);
-
- // We should go back down to the original number of enabled languages.
- return whenNumEnabledLanguagesBecomes(numEnabled).then(function() {
- assertFalse(languageHelper.isLanguageEnabled(newLanguage.code));
+ // Enabled a language which we can then disable.
+ var newLanguage = getAvailableLanguage();
+ languageHelper.enableLanguage(newLanguage.code);
+
+ // Wait for the language to be enabled.
+ return whenNumEnabledLanguagesBecomes(numEnabled + 1).then(function() {
+ // Populate the dom-repeat.
+ Polymer.dom.flush();
+
+ // Find the new language item.
+ var items = languagesCollapse.querySelectorAll('.list-item');
+ var domRepeat = assert(
+ languagesCollapse.querySelector('template[is="dom-repeat"]'));
+ var item = Array.from(items).find(function(el) {
+ return domRepeat.itemForElement(el) &&
+ domRepeat.itemForElement(el).language == newLanguage;
+ });
+
+ // Open the menu and select Remove.
+ MockInteractions.tap(item.querySelector('paper-icon-button'));
+
+ var languageMenu = assert(languagesPage.$$('cr-shared-menu'));
+ assertTrue(languageMenu.menuOpen);
+ var removeMenuItem = assert(languageMenu.querySelector(
+ '.dropdown-item:last-child'));
+ assertFalse(removeMenuItem.disabled);
+ MockInteractions.tap(removeMenuItem);
+ assertFalse(languageMenu.menuOpen);
+
+ // We should go back down to the original number of enabled languages.
+ return whenNumEnabledLanguagesBecomes(numEnabled).then(function() {
+ assertFalse(languageHelper.isLanguageEnabled(newLanguage.code));
+ });
});
});
});

Powered by Google App Engine
This is Rietveld 408576698