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

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

Issue 2518233004: MD Settings: Move settings-advanced-page into settings-basic-page (Closed)
Patch Set: rebase Created 4 years 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_main_page', function() { 5 cr.define('settings_main_page', function() {
6 /** 6 /**
7 * Extending TestBrowserProxy even though SearchManager is not a browser proxy 7 * Extending TestBrowserProxy even though SearchManager is not a browser proxy
8 * itself. Essentially TestBrowserProxy can act as a "proxy" for any external 8 * itself. Essentially TestBrowserProxy can act as a "proxy" for any external
9 * dependency, not just "browser proxies" (and maybe should be renamed to 9 * dependency, not just "browser proxies" (and maybe should be renamed to
10 * TestProxy). 10 * TestProxy).
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 97
98 searchManager.resetResolver('search'); 98 searchManager.resetResolver('search');
99 return settingsMain.searchContents(expectedQuery3); 99 return settingsMain.searchContents(expectedQuery3);
100 }).then(function() { 100 }).then(function() {
101 return searchManager.whenCalled('search'); 101 return searchManager.whenCalled('search');
102 }).then(function(query) { 102 }).then(function(query) {
103 assertEquals(expectedQuery3, query); 103 assertEquals(expectedQuery3, query);
104 }); 104 });
105 }); 105 });
106 106
107 /** @return {!HTMLElement} */
108 function getToggleContainer() {
109 var page = settingsMain.$$('settings-basic-page');
110 assertTrue(!!page);
111 var toggleContainer = page.$$('#toggleContainer');
112 assertTrue(!!toggleContainer);
113 return toggleContainer;
114 }
115
116 /**
117 * Asserts that the Advanced toggle container exists in the combined
118 * settings page and asserts whether it should be visible.
119 * @param {boolean} expectedVisible
120 */
121 function assertToggleContainerVisible(expectedVisible) {
122 var toggleContainer = getToggleContainer();
123 if (expectedVisible)
124 assertNotEquals('none', toggleContainer.style.display);
125 else
126 assertEquals('none', toggleContainer.style.display);
127 }
128
107 test('no results page shows and hides', function() { 129 test('no results page shows and hides', function() {
108 Polymer.dom.flush(); 130 Polymer.dom.flush();
109 var noSearchResults = settingsMain.$.noSearchResults; 131 var noSearchResults = settingsMain.$.noSearchResults;
110 assertTrue(!!noSearchResults); 132 assertTrue(!!noSearchResults);
111 assertTrue(noSearchResults.hidden); 133 assertTrue(noSearchResults.hidden);
112 134
113 var toggleContainer = settingsMain.$$('#toggleContainer'); 135 assertToggleContainerVisible(true);
114 assertTrue(!!toggleContainer);
115 assertNotEquals('none', toggleContainer.style.display);
116 136
117 searchManager.setMatchesFound(false); 137 searchManager.setMatchesFound(false);
118 return settingsMain.searchContents('Query1').then(function() { 138 return settingsMain.searchContents('Query1').then(function() {
119 assertFalse(noSearchResults.hidden); 139 assertFalse(noSearchResults.hidden);
120 assertEquals('none', toggleContainer.style.display); 140 assertToggleContainerVisible(false);
121 141
122 searchManager.setMatchesFound(true); 142 searchManager.setMatchesFound(true);
123 return settingsMain.searchContents('Query2'); 143 return settingsMain.searchContents('Query2');
124 }).then(function() { 144 }).then(function() {
125 assertTrue(noSearchResults.hidden); 145 assertTrue(noSearchResults.hidden);
126 }); 146 });
127 }); 147 });
128 148
129 // Ensure that when the user clears the search box, the "no results" page 149 // Ensure that when the user clears the search box, the "no results" page
130 // is hidden and the "advanced page toggle" is visible again. 150 // is hidden and the "advanced page toggle" is visible again.
131 test('no results page hides on clear', function() { 151 test('no results page hides on clear', function() {
132 Polymer.dom.flush(); 152 Polymer.dom.flush();
133 var noSearchResults = settingsMain.$.noSearchResults; 153 var noSearchResults = settingsMain.$.noSearchResults;
134 assertTrue(!!noSearchResults); 154 assertTrue(!!noSearchResults);
135 assertTrue(noSearchResults.hidden); 155 assertTrue(noSearchResults.hidden);
136 156
137 var toggleContainer = settingsMain.$$('#toggleContainer'); 157 assertToggleContainerVisible(true);
138 assertTrue(!!toggleContainer);
139 assertNotEquals('none', toggleContainer.style.display);
140 158
141 searchManager.setMatchesFound(false); 159 searchManager.setMatchesFound(false);
142 // Clearing the search box is effectively a search for the empty string. 160 // Clearing the search box is effectively a search for the empty string.
143 return settingsMain.searchContents('').then(function() { 161 return settingsMain.searchContents('').then(function() {
144 Polymer.dom.flush(); 162 Polymer.dom.flush();
145 assertTrue(noSearchResults.hidden); 163 assertTrue(noSearchResults.hidden);
146 assertNotEquals('none', toggleContainer.style.display); 164 assertToggleContainerVisible(true);
147 }); 165 });
148 }); 166 });
149 167
150 /** 168 /**
169 * Asserts the visibility of the basic and advanced pages.
170 * @param {string} Expected 'display' value for the basic page.
171 * @param {string} Expected 'display' value for the advanced page.
172 */
173 function assertPageVisibility(expectedBasic, expectedAdvanced) {
174 Polymer.dom.flush();
175 var page = settingsMain.$$('settings-basic-page');
176 assertEquals(
177 expectedBasic, page.$$('#basicPage').style.display);
178 assertEquals(
179 expectedAdvanced, page.$$('#advancedPage').style.display);
180 }
181
182 // TODO(michaelpg): It would be better not to drill into
183 // settings-basic-page. If search should indeed only work in Settings
184 // (as opposed to Advanced), perhaps some of this logic should be
185 // delegated to settings-basic-page now instead of settings-main.
186
187 /**
151 * Asserts the visibility of the basic and advanced pages after exiting 188 * Asserts the visibility of the basic and advanced pages after exiting
152 * search mode. 189 * search mode.
153 * @param {string} Expected 'display' value for the basic page. 190 * @param {string} Expected 'display' value for the basic page.
154 * @param {string} Expected 'display' value for the advanced page. 191 * @param {string} Expected 'display' value for the advanced page.
155 * @return {!Promise} 192 * @return {!Promise}
156 */ 193 */
157 function assertPageVisibilityAfterSearch( 194 function assertPageVisibilityAfterSearch(
158 expectedBasic, expectedAdvanced) { 195 expectedBasic, expectedAdvanced) {
159 searchManager.setMatchesFound(true); 196 searchManager.setMatchesFound(true);
160 return settingsMain.searchContents('Query1').then(function() { 197 return settingsMain.searchContents('Query1').then(function() {
161 searchManager.setMatchesFound(false); 198 searchManager.setMatchesFound(false);
162 return settingsMain.searchContents(''); 199 return settingsMain.searchContents('');
163 }).then(function() { 200 }).then(function() {
164 Polymer.dom.flush(); 201 assertPageVisibility(expectedBasic, expectedAdvanced);
165 assertEquals(
166 expectedBasic,
167 settingsMain.$$('settings-basic-page').style.display);
168 assertEquals(
169 expectedAdvanced,
170 settingsMain.$$('settings-advanced-page').style.display);
171 }); 202 });
172 } 203 }
173 204
174 test('exiting search mode, advanced collapsed', function() { 205 test('exiting search mode, advanced collapsed', function() {
175 // Simulating searching while the advanced page is collapsed. 206 // Simulating searching while the advanced page is collapsed.
176 settingsMain.currentRouteChanged(settings.Route.BASIC); 207 settingsMain.currentRouteChanged(settings.Route.BASIC);
177 Polymer.dom.flush(); 208 Polymer.dom.flush();
178 return assertPageVisibilityAfterSearch('', 'none'); 209 return assertPageVisibilityAfterSearch('', 'none');
179 }); 210 });
180 211
(...skipping 14 matching lines...) Expand all
195 Polymer.dom.flush(); 226 Polymer.dom.flush();
196 227
197 searchManager.setMatchesFound(true); 228 searchManager.setMatchesFound(true);
198 return settingsMain.searchContents('Query1').then(function() { 229 return settingsMain.searchContents('Query1').then(function() {
199 // Simulate navigating into a subpage. 230 // Simulate navigating into a subpage.
200 settings.navigateTo(settings.Route.SEARCH_ENGINES); 231 settings.navigateTo(settings.Route.SEARCH_ENGINES);
201 settingsMain.$$('settings-basic-page').fire('subpage-expand'); 232 settingsMain.$$('settings-basic-page').fire('subpage-expand');
202 Polymer.dom.flush(); 233 Polymer.dom.flush();
203 234
204 // Simulate clicking the left arrow to go back to the search results. 235 // Simulate clicking the left arrow to go back to the search results.
205 settingsMain.currentRouteChanged(settings.Route.BASIC); 236 settings.navigateTo(settings.Route.BASIC);
206 Polymer.dom.flush(); 237 assertPageVisibility('', '');
207 assertEquals(
208 '', settingsMain.$$('settings-basic-page').style.display);
209 assertEquals(
210 '', settingsMain.$$('settings-advanced-page').style.display);
211 }); 238 });
212 }); 239 });
213 240
241 // TODO(michaelpg): Move these to a new test for settings-basic-page.
214 test('can collapse advanced on advanced section route', function() { 242 test('can collapse advanced on advanced section route', function() {
215 settings.navigateTo(settings.Route.PRIVACY); 243 settings.navigateTo(settings.Route.PRIVACY);
216 Polymer.dom.flush(); 244 Polymer.dom.flush();
217 245
218 var advancedToggle = settingsMain.$$('#advancedToggle'); 246 var advancedToggle =
247 getToggleContainer().querySelector('#advancedToggle');
219 assertTrue(!!advancedToggle); 248 assertTrue(!!advancedToggle);
220 249
221 MockInteractions.tap(advancedToggle); 250 MockInteractions.tap(advancedToggle);
222 Polymer.dom.flush(); 251 Polymer.dom.flush();
223 252
224 assertFalse(settingsMain.showPages_.advanced); 253 assertPageVisibility('', 'none');
225 }); 254 });
226 255
227 test('navigating to a basic page does not collapse advanced', function() { 256 test('navigating to a basic page does not collapse advanced', function() {
228 settings.navigateTo(settings.Route.PRIVACY); 257 settings.navigateTo(settings.Route.PRIVACY);
229 Polymer.dom.flush(); 258 Polymer.dom.flush();
230 259
231 var advancedToggle = settingsMain.$$('#advancedToggle'); 260 assertToggleContainerVisible(true);
232 assertTrue(!!advancedToggle);
233 261
234 settings.navigateTo(settings.Route.PEOPLE); 262 settings.navigateTo(settings.Route.PEOPLE);
235 Polymer.dom.flush(); 263 Polymer.dom.flush();
236 264
237 assertTrue(settingsMain.showPages_.advanced); 265 assertPageVisibility('', '');
238 }); 266 });
239 }); 267 });
240 } 268 }
241 269
242 return { 270 return {
243 registerTests: registerTests, 271 registerTests: registerTests,
244 }; 272 };
245 }); 273 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698