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

Side by Side Diff: chrome/test/data/webui/media_router/media_router_container_search_tests.js

Issue 1993003002: [Media Router WebUI] Disable search by default. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Responding to comments Created 4 years, 7 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/test/data/webui/media_router/media_router_container_filter_tests.js ('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 media-router-container that focus on 5 /** @fileoverview Suite of tests for media-router-container that focus on
6 * the MRPM search feature. 6 * the MRPM search feature.
7 */ 7 */
8 cr.define('media_router_container_search', function() { 8 cr.define('media_router_container_search', function() {
9 function registerTests() { 9 function registerTests() {
10 suite('MediaRouterContainerSearch', function() { 10 suite('MediaRouterContainerSearch', function() {
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 pseudoSink = new media_router.Sink( 147 pseudoSink = new media_router.Sink(
148 'pseudo:test', '', null, 'domain.com', 148 'pseudo:test', '', null, 'domain.com',
149 media_router.SinkIconType.CAST, undefined, 149 media_router.SinkIconType.CAST, undefined,
150 test_base.castModeBitset); 150 test_base.castModeBitset);
151 pseudoSink.isPseudoSink = true; 151 pseudoSink.isPseudoSink = true;
152 foundSink = new media_router.Sink( 152 foundSink = new media_router.Sink(
153 'found sink id', 'no existing sink', null, pseudoSink.domain, 153 'found sink id', 'no existing sink', null, pseudoSink.domain,
154 pseudoSink.iconType, undefined, pseudoSink.castModes); 154 pseudoSink.iconType, undefined, pseudoSink.castModes);
155 fakeSinkListWithPseudoSink = fakeSinkList.concat([pseudoSink]); 155 fakeSinkListWithPseudoSink = fakeSinkList.concat([pseudoSink]);
156 156
157 container.allSinks = fakeSinkListWithPseudoSink;
158
157 // Allow for the media router container to be created, attached, and 159 // Allow for the media router container to be created, attached, and
158 // listeners registered in an afterNextRender() call. 160 // listeners registered in an afterNextRender() call.
159 Polymer.RenderStatus.afterNextRender(this, done); 161 Polymer.RenderStatus.afterNextRender(this, done);
160 }); 162 });
161 163
162 test('pseudo sink hidden without filter input', function(done) { 164 test('pseudo sink hidden without filter input', function(done) {
163 container.allSinks = fakeSinkListWithPseudoSink;
164
165 setTimeout(function() { 165 setTimeout(function() {
166 var sinkList = 166 var sinkList =
167 container.$$('#sink-list').querySelectorAll('paper-item'); 167 container.$$('#sink-list').querySelectorAll('paper-item');
168 assertEquals(fakeSinkList.length, sinkList.length); 168 assertEquals(fakeSinkList.length, sinkList.length);
169 MockInteractions.tap(container.$['sink-search-icon']); 169 MockInteractions.tap(container.$$('#sink-search-icon'));
170 chainOnAnimationPromise(function() { 170 chainOnAnimationPromise(function() {
171 var searchResults = 171 var searchResults =
172 container.$$('#search-results').querySelectorAll('paper-item'); 172 container.$$('#search-results').querySelectorAll('paper-item');
173 assertEquals(fakeSinkList.length, searchResults.length); 173 assertEquals(fakeSinkList.length, searchResults.length);
174 done(); 174 done();
175 }); 175 });
176 }); 176 });
177 }); 177 });
178 178
179 test('filter input adds pseudo sink', function(done) { 179 test('filter input adds pseudo sink', function(done) {
180 container.allSinks = fakeSinkListWithPseudoSink; 180 var searchInput = container.$$('#sink-search-input');
181
182 var searchInput = container.$['sink-search-input'];
183 searchInput.value = 'no existing sink'; 181 searchInput.value = 'no existing sink';
184 chainOnAnimationPromise(function() { 182 chainOnAnimationPromise(function() {
185 var searchResults = 183 var searchResults =
186 container.$$('#search-results').querySelectorAll('paper-item'); 184 container.$$('#search-results').querySelectorAll('paper-item');
187 assertEquals(1, searchResults.length); 185 assertEquals(1, searchResults.length);
188 var item = 186 var item =
189 container.$$('#searchResults').itemForElement(searchResults[0]); 187 container.$$('#searchResults').itemForElement(searchResults[0]);
190 assertEquals(pseudoSink.id, item.sinkItem.id); 188 assertEquals(pseudoSink.id, item.sinkItem.id);
191 done(); 189 done();
192 }); 190 });
193 }); 191 });
194 192
195 test('filter exact match real sink hides pseudo sink', function(done) { 193 test('filter exact match real sink hides pseudo sink', function(done) {
196 container.allSinks = fakeSinkListWithPseudoSink; 194 var searchInput = container.$$('#sink-search-input');
197
198 var searchInput = container.$['sink-search-input'];
199 searchInput.value = fakeSinkList[0].name; 195 searchInput.value = fakeSinkList[0].name;
200 chainOnAnimationPromise(function() { 196 chainOnAnimationPromise(function() {
201 var searchResults = 197 var searchResults =
202 container.$$('#search-results').querySelectorAll('paper-item'); 198 container.$$('#search-results').querySelectorAll('paper-item');
203 assertEquals(1, searchResults.length); 199 assertEquals(1, searchResults.length);
204 var item = 200 var item =
205 container.$$('#searchResults').itemForElement(searchResults[0]); 201 container.$$('#searchResults').itemForElement(searchResults[0]);
206 assertEquals(fakeSinkList[0].id, item.sinkItem.id); 202 assertEquals(fakeSinkList[0].id, item.sinkItem.id);
207 done(); 203 done();
208 }); 204 });
209 }); 205 });
210 206
211 test('clicking pseudo sink starts search', function(done) { 207 test('clicking pseudo sink starts search', function(done) {
212 container.allSinks = fakeSinkListWithPseudoSink; 208 var searchInput = container.$$('#sink-search-input');
213
214 var searchInput = container.$['sink-search-input'];
215 searchInput.value = 'no existing sink'; 209 searchInput.value = 'no existing sink';
216 chainOnAnimationPromise(function() { 210 chainOnAnimationPromise(function() {
217 var searchResults = 211 var searchResults =
218 container.$$('#search-results').querySelectorAll('paper-item'); 212 container.$$('#search-results').querySelectorAll('paper-item');
219 container.addEventListener( 213 container.addEventListener(
220 'search-sinks-and-create-route', function(data) { 214 'search-sinks-and-create-route', function(data) {
221 assertEquals(pseudoSink.id, data.detail.id); 215 assertEquals(pseudoSink.id, data.detail.id);
222 assertEquals(pseudoSink.name, data.detail.name); 216 assertEquals(pseudoSink.name, data.detail.name);
223 assertEquals(pseudoSink.domain, data.detail.domain); 217 assertEquals(pseudoSink.domain, data.detail.domain);
224 done(); 218 done();
225 }); 219 });
226 MockInteractions.tap(searchResults[0]); 220 MockInteractions.tap(searchResults[0]);
227 }); 221 });
228 }); 222 });
229 223
230 test('spinner starts on pseudo sink', function(done) { 224 test('spinner starts on pseudo sink', function(done) {
231 container.allSinks = fakeSinkListWithPseudoSink; 225 var searchInput = container.$$('#sink-search-input');
232
233 var searchInput = container.$['sink-search-input'];
234 searchInput.value = foundSink.name; 226 searchInput.value = foundSink.name;
235 chainOnAnimationPromise(function() { 227 chainOnAnimationPromise(function() {
236 var searchResults = 228 var searchResults =
237 container.$$('#search-results').querySelectorAll('paper-item'); 229 container.$$('#search-results').querySelectorAll('paper-item');
238 MockInteractions.tap(searchResults[0]); 230 MockInteractions.tap(searchResults[0]);
239 setTimeout(function() { 231 setTimeout(function() {
240 searchResults = 232 searchResults =
241 container.$$('#search-results').querySelectorAll('paper-item'); 233 container.$$('#search-results').querySelectorAll('paper-item');
242 assertEquals(1, searchResults.length); 234 assertEquals(1, searchResults.length);
243 checkSpinningSinkInFilter(pseudoSink); 235 checkSpinningSinkInFilter(pseudoSink);
244 236
245 searchInput.value = foundSink.name[0]; 237 searchInput.value = foundSink.name[0];
246 setTimeout(function() { 238 setTimeout(function() {
247 checkSpinningSinkInFilter(pseudoSink); 239 checkSpinningSinkInFilter(pseudoSink);
248 240
249 searchInput.value = ''; 241 searchInput.value = '';
250 setTimeout(function() { 242 setTimeout(function() {
251 checkSpinningSinkInFilter(pseudoSink); 243 checkSpinningSinkInFilter(pseudoSink);
252 done(); 244 done();
253 }); 245 });
254 }); 246 });
255 }); 247 });
256 }); 248 });
257 }); 249 });
258 250
259 test('pseudo sink shown in sink list before real sink', function(done) { 251 test('pseudo sink shown in sink list before real sink', function(done) {
260 container.allSinks = fakeSinkListWithPseudoSink; 252 var searchInput = container.$$('#sink-search-input');
261
262 var searchInput = container.$['sink-search-input'];
263 searchInput.value = foundSink.name; 253 searchInput.value = foundSink.name;
264 chainOnAnimationPromise(function() { 254 chainOnAnimationPromise(function() {
265 var searchResults = 255 var searchResults =
266 container.$$('#search-results').querySelectorAll('paper-item'); 256 container.$$('#search-results').querySelectorAll('paper-item');
267 MockInteractions.tap(searchResults[0]); 257 MockInteractions.tap(searchResults[0]);
268 MockInteractions.tap( 258 MockInteractions.tap(
269 container.$['container-header'].$$('#back-button')); 259 container.$['container-header'].$$('#back-button'));
270 chainOnAnimationPromise(function() { 260 chainOnAnimationPromise(function() {
271 checkCurrentView(media_router.MediaRouterView.SINK_LIST); 261 checkCurrentView(media_router.MediaRouterView.SINK_LIST);
272 checkSpinningSinkInSinkList( 262 checkSpinningSinkInSinkList(
273 pseudoSink, fakeSinkListWithPseudoSink.length); 263 pseudoSink, fakeSinkListWithPseudoSink.length);
274 done(); 264 done();
275 }); 265 });
276 }); 266 });
277 }); 267 });
278 268
279 test('onReceiveSearchResult updates spinner', function(done) { 269 test('onReceiveSearchResult updates spinner', function(done) {
280 container.allSinks = fakeSinkListWithPseudoSink; 270 var searchInput = container.$$('#sink-search-input');
281
282 var searchInput = container.$['sink-search-input'];
283 searchInput.value = foundSink.name; 271 searchInput.value = foundSink.name;
284 chainOnAnimationPromise(function() { 272 chainOnAnimationPromise(function() {
285 var searchResults = 273 var searchResults =
286 container.$$('#search-results').querySelectorAll('paper-item'); 274 container.$$('#search-results').querySelectorAll('paper-item');
287 MockInteractions.tap(searchResults[0]); 275 MockInteractions.tap(searchResults[0]);
288 container.allSinks = fakeSinkListWithPseudoSink.concat([foundSink]); 276 container.allSinks = fakeSinkListWithPseudoSink.concat([foundSink]);
289 container.onReceiveSearchResult(foundSink.id); 277 container.onReceiveSearchResult(foundSink.id);
290 setTimeout(function() { 278 setTimeout(function() {
291 searchResults = 279 searchResults =
292 container.$$('#search-results').querySelectorAll('paper-item'); 280 container.$$('#search-results').querySelectorAll('paper-item');
293 assertEquals(1, searchResults.length); 281 assertEquals(1, searchResults.length);
294 checkSpinningSinkInFilter(foundSink); 282 checkSpinningSinkInFilter(foundSink);
295 done(); 283 done();
296 }); 284 });
297 }); 285 });
298 }); 286 });
299 287
300 test('sink list updates spinner', function(done) { 288 test('sink list updates spinner', function(done) {
301 container.allSinks = fakeSinkListWithPseudoSink; 289 var searchInput = container.$$('#sink-search-input');
302
303 var searchInput = container.$['sink-search-input'];
304 searchInput.value = foundSink.name; 290 searchInput.value = foundSink.name;
305 chainOnAnimationPromise(function() { 291 chainOnAnimationPromise(function() {
306 var searchResults = 292 var searchResults =
307 container.$$('#search-results').querySelectorAll('paper-item'); 293 container.$$('#search-results').querySelectorAll('paper-item');
308 MockInteractions.tap(searchResults[0]); 294 MockInteractions.tap(searchResults[0]);
309 setTimeout(function() { 295 setTimeout(function() {
310 container.onReceiveSearchResult(foundSink.id); 296 container.onReceiveSearchResult(foundSink.id);
311 container.allSinks = fakeSinkListWithPseudoSink.concat([foundSink]); 297 container.allSinks = fakeSinkListWithPseudoSink.concat([foundSink]);
312 setTimeout(function() { 298 setTimeout(function() {
313 searchResults = container.$$('#search-results') 299 searchResults = container.$$('#search-results')
314 .querySelectorAll('paper-item'); 300 .querySelectorAll('paper-item');
315 assertEquals(1, searchResults.length); 301 assertEquals(1, searchResults.length);
316 checkSpinningSinkInFilter(foundSink); 302 checkSpinningSinkInFilter(foundSink);
317 done(); 303 done();
318 }); 304 });
319 }); 305 });
320 }); 306 });
321 }); 307 });
322 308
323 test('route received clears spinner and search state', function(done) { 309 test('route received clears spinner and search state', function(done) {
324 var route = new media_router.Route( 310 var route = new media_router.Route(
325 'id 1', foundSink.id, 'Title 1', 0, true, false); 311 'id 1', foundSink.id, 'Title 1', 0, true, false);
326 container.allSinks = fakeSinkListWithPseudoSink;
327 312
328 var searchInput = container.$['sink-search-input']; 313 var searchInput = container.$$('#sink-search-input');
329 searchInput.value = foundSink.name; 314 searchInput.value = foundSink.name;
330 chainOnAnimationPromise(function() { 315 chainOnAnimationPromise(function() {
331 var searchResults = 316 var searchResults =
332 container.$$('#search-results').querySelectorAll('paper-item'); 317 container.$$('#search-results').querySelectorAll('paper-item');
333 MockInteractions.tap(searchResults[0]); 318 MockInteractions.tap(searchResults[0]);
334 container.allSinks = fakeSinkListWithPseudoSink.concat([foundSink]); 319 container.allSinks = fakeSinkListWithPseudoSink.concat([foundSink]);
335 container.onReceiveSearchResult(foundSink.id); 320 container.onReceiveSearchResult(foundSink.id);
336 container.onCreateRouteResponseReceived(foundSink.id, route, true); 321 container.onCreateRouteResponseReceived(foundSink.id, route, true);
337 assertEquals(null, container.pseudoSinkSearchState_); 322 assertEquals(null, container.pseudoSinkSearchState_);
338 setTimeout(function() { 323 setTimeout(function() {
(...skipping 16 matching lines...) Expand all
355 340
356 test('cannot create another route during search', function(done) { 341 test('cannot create another route during search', function(done) {
357 var checkCreateRoute = function() { 342 var checkCreateRoute = function() {
358 done(); 343 done();
359 }; 344 };
360 var checkNoCreateRoute = function() { 345 var checkNoCreateRoute = function() {
361 assertTrue(false); 346 assertTrue(false);
362 }; 347 };
363 var route = new media_router.Route( 348 var route = new media_router.Route(
364 'id 1', foundSink.id, 'Title 1', 0, true, false); 349 'id 1', foundSink.id, 'Title 1', 0, true, false);
365 container.allSinks = fakeSinkListWithPseudoSink;
366 container.addEventListener('create-route', checkNoCreateRoute); 350 container.addEventListener('create-route', checkNoCreateRoute);
367 351
368 var searchInput = container.$['sink-search-input']; 352 var searchInput = container.$$('#sink-search-input');
369 searchInput.value = foundSink.name; 353 searchInput.value = foundSink.name;
370 chainOnAnimationPromise(function() { 354 chainOnAnimationPromise(function() {
371 var searchResults = 355 var searchResults =
372 container.$$('#search-results').querySelectorAll('paper-item'); 356 container.$$('#search-results').querySelectorAll('paper-item');
373 MockInteractions.tap(searchResults[0]); 357 MockInteractions.tap(searchResults[0]);
374 MockInteractions.tap( 358 MockInteractions.tap(
375 container.$['container-header'].$$('#back-button')); 359 container.$['container-header'].$$('#back-button'));
376 chainOnAnimationPromise(function() { 360 chainOnAnimationPromise(function() {
377 var sinkList = 361 var sinkList =
378 container.$$('#sink-list').querySelectorAll('paper-item'); 362 container.$$('#sink-list').querySelectorAll('paper-item');
(...skipping 20 matching lines...) Expand all
399 checkCurrentView(media_router.MediaRouterView.SINK_LIST); 383 checkCurrentView(media_router.MediaRouterView.SINK_LIST);
400 MockInteractions.tap(sink); 384 MockInteractions.tap(sink);
401 }); 385 });
402 }); 386 });
403 }); 387 });
404 }); 388 });
405 }); 389 });
406 }); 390 });
407 391
408 test('route creation failure clears spinner and search', function(done) { 392 test('route creation failure clears spinner and search', function(done) {
409 container.allSinks = fakeSinkListWithPseudoSink; 393 var searchInput = container.$$('#sink-search-input');
410
411 var searchInput = container.$['sink-search-input'];
412 searchInput.value = foundSink.name; 394 searchInput.value = foundSink.name;
413 chainOnAnimationPromise(function() { 395 chainOnAnimationPromise(function() {
414 var searchResults = 396 var searchResults =
415 container.$$('#search-results').querySelectorAll('paper-item'); 397 container.$$('#search-results').querySelectorAll('paper-item');
416 MockInteractions.tap(searchResults[0]); 398 MockInteractions.tap(searchResults[0]);
417 container.allSinks = fakeSinkListWithPseudoSink.concat([foundSink]); 399 container.allSinks = fakeSinkListWithPseudoSink.concat([foundSink]);
418 container.onReceiveSearchResult(foundSink.id); 400 container.onReceiveSearchResult(foundSink.id);
419 container.onCreateRouteResponseReceived(pseudoSink.id, null, true); 401 container.onCreateRouteResponseReceived(pseudoSink.id, null, true);
420 assertEquals(null, container.pseudoSinkSearchState_); 402 assertEquals(null, container.pseudoSinkSearchState_);
421 setTimeout(function() { 403 setTimeout(function() {
422 checkCurrentView(media_router.MediaRouterView.FILTER); 404 checkCurrentView(media_router.MediaRouterView.FILTER);
423 searchResults = 405 searchResults =
424 container.$$('#search-results').querySelectorAll('paper-item'); 406 container.$$('#search-results').querySelectorAll('paper-item');
425 searchResults.forEach(function(sink) { 407 searchResults.forEach(function(sink) {
426 var spinner = sink.querySelector('paper-spinner'); 408 var spinner = sink.querySelector('paper-spinner');
427 checkElementVisible(spinner, false); 409 checkElementVisible(spinner, false);
428 }); 410 });
429 done(); 411 done();
430 }); 412 });
431 }); 413 });
432 }); 414 });
433 415
434 test('pseudo sink with empty domain is not shown', function(done) { 416 test('pseudo sink with empty domain is not shown', function(done) {
435 pseudoSink.domain = ''; 417 pseudoSink.domain = '';
418 // Trigger |allSinks| observer to be called again with new pseudo sink
419 // domain.
420 container.allSinks = [];
436 container.allSinks = fakeSinkListWithPseudoSink; 421 container.allSinks = fakeSinkListWithPseudoSink;
437 422
438 var searchInput = container.$['sink-search-input']; 423 var searchInput = container.$$('#sink-search-input');
439 searchInput.value = foundSink.name; 424 searchInput.value = foundSink.name;
440 chainOnAnimationPromise(function() { 425 chainOnAnimationPromise(function() {
441 var noMatches = container.$$('#no-search-matches'); 426 var noMatches = container.$$('#no-search-matches');
442 var searchResults = container.$$('#search-results'); 427 var searchResults = container.$$('#search-results');
443 checkElementVisible(noMatches, true); 428 checkElementVisible(noMatches, true);
444 checkElementVisible(searchResults, false); 429 checkElementVisible(searchResults, false);
445 done(); 430 done();
446 }); 431 });
447 }); 432 });
448 433
(...skipping 13 matching lines...) Expand all
462 searchState.checkForRealSink(fakeSinkList.concat([foundSink]))); 447 searchState.checkForRealSink(fakeSinkList.concat([foundSink])));
463 assertEquals(foundSink.id, searchState.checkForRealSink(fakeSinkList)); 448 assertEquals(foundSink.id, searchState.checkForRealSink(fakeSinkList));
464 }); 449 });
465 }); 450 });
466 } 451 }
467 452
468 return { 453 return {
469 registerTests: registerTests, 454 registerTests: registerTests,
470 }; 455 };
471 }); 456 });
OLDNEW
« no previous file with comments | « chrome/test/data/webui/media_router/media_router_container_filter_tests.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698