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

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

Issue 2265253002: Replace Manage Languages with dialog and dropdown item (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@EnableDisableLanguage
Patch Set: remove unused prefs object 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 /** @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 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 languagesPage = languagesSection.querySelector('settings-languages-page'); 60 languagesPage = languagesSection.querySelector('settings-languages-page');
61 assertTrue(!!languagesPage); 61 assertTrue(!!languagesPage);
62 62
63 languageHelper = languagesPage.languageHelper; 63 languageHelper = languagesPage.languageHelper;
64 return languageHelper.whenReady(); 64 return languageHelper.whenReady();
65 }.bind(this)); 65 }.bind(this));
66 66
67 teardown(function(done) { 67 teardown(function(done) {
68 // Close the section if we're in a sub-page. 68 // Close the section if we're in a sub-page.
69 if (settings.getCurrentRoute().isSubpage()) { 69 if (settings.getCurrentRoute().isSubpage()) {
70 settings.navigateTo(settings.Route.ADVANCED); 70 settings.navigateTo(settings.Route.BASIC);
71 setTimeout(done); 71 setTimeout(done);
72 } else { 72 } else {
73 done(); 73 done();
74 } 74 }
75 }); 75 });
76 76
77 test('manage languages', function() { 77 suite('add languages dialog', function() {
78 var manageLanguagesButton = 78 var dialog;
79 languagesPage.$.languagesCollapse.querySelector( 79 var addLanguagesButton;
stevenjb 2016/08/23 17:08:04 Not needed.
michaelpg 2016/08/23 23:37:07 Done.
80 '.list-button:last-of-type'); 80 var cancelButton;
81 MockInteractions.tap(manageLanguagesButton); 81 var actionButton;
82 assertTrue(!!languagesPage.$$('settings-manage-languages-page')); 82
83 setup(function(done) {
84 addLanguagesButton = languagesPage.$.languagesCollapse.querySelector(
85 '.list-button:last-of-type');
86 MockInteractions.tap(addLanguagesButton);
87
88 // The page stamps the dialog and registers listeners asynchronously.
89 Polymer.Base.async(function() {
90 dialog = languagesPage.$$('settings-add-languages-dialog');
91 assertTrue(!!dialog);
92
93 actionButton = dialog.$$('.action-button');
94 cancelButton = dialog.$$('.cancel-button');
stevenjb 2016/08/23 17:08:04 assert these?
michaelpg 2016/08/23 23:37:07 Done.
95 done();
96 });
97 });
98
99 teardown(function() {
100 // Test the dialog is removed from the DOM.
101 Polymer.dom.flush();
102 assertEquals(null, languagesPage.$$('settings-add-languages-dialog'));
103 });
104
105 test('cancel', function() {
106 assertFalse(cancelButton.disabled);
107 MockInteractions.tap(cancelButton);
stevenjb 2016/08/23 17:08:04 Does this test anything?
michaelpg 2016/08/23 23:37:07 Yes, it tests that the cancel button closes the di
108 });
109
110 test('add', function() {
111 // The fixed-height dialog's iron-list should stamp well below 50 items.
112 var items =
113 dialog.$.dialog.querySelectorAll('.list-item:not([hidden])');
114 assertGT(items.length, 1);
115 assertLT(items.length, 50);
116
117 // No languages have been checked.
118 assertTrue(actionButton.disabled);
119 MockInteractions.tap(actionButton);
120 Polymer.dom.flush();
121 assertEquals(dialog, languagesPage.$$('settings-add-languages-dialog'));
122
123 // Check and uncheck one language.
124 MockInteractions.tap(items[0]);
125 assertFalse(actionButton.disabled);
126 MockInteractions.tap(items[0]);
127 assertTrue(actionButton.disabled);
128
129 // Check multiple languages.
130 MockInteractions.tap(items[0]);
131 MockInteractions.tap(items[1]);
132 assertFalse(actionButton.disabled);
133
134 MockInteractions.tap(actionButton);
135 });
83 }); 136 });
84 137
85 test('Should not set UI language', function() { 138 test('Should not set UI language', function() {
86 var languagesCollapse = languagesPage.$.languagesCollapse; 139 var languagesCollapse = languagesPage.$.languagesCollapse;
87 var languageOptionsDropdownTrigger = languagesCollapse.querySelector( 140 var languageOptionsDropdownTrigger = languagesCollapse.querySelector(
88 'paper-icon-button'); 141 'paper-icon-button');
89 assertTrue(!!languageOptionsDropdownTrigger); 142 assertTrue(!!languageOptionsDropdownTrigger);
90 143
91 // This shouldn't get called. 144 // This shouldn't get called.
92 languageHelper.setUILanguage = assertNotReached; 145 languageHelper.setUILanguage = assertNotReached;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 assertTrue(!!languagesPage.$$('settings-edit-dictionary-page')); 186 assertTrue(!!languagesPage.$$('settings-edit-dictionary-page'));
134 } 187 }
135 }); 188 });
136 }.bind(this)); 189 }.bind(this));
137 190
138 // TODO(michaelpg): Test more aspects of the languages UI. 191 // TODO(michaelpg): Test more aspects of the languages UI.
139 192
140 // Run all registered tests. 193 // Run all registered tests.
141 mocha.run(); 194 mocha.run();
142 }); 195 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698