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

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

Issue 2725503002: [Media Router] Custom Controls 4 - Implement details view WebUI (Closed)
Patch Set: Address Mark's comments Created 3 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 route-details. */ 5 /** @fileoverview Suite of tests for route-details. */
6 cr.define('route_details', function() { 6 cr.define('route_details', function() {
7 function registerTests() { 7 function registerTests() {
8 suite('RouteDetails', function() { 8 suite('RouteDetails', function() {
9 /** 9 /**
10 * Route Details created before each test. 10 * Route Details created before each test.
11 * @type {RouteDetails} 11 * @type {RouteDetails}
12 */ 12 */
13 var details; 13 var details;
14 14
15 /** 15 /**
16 * First fake route created before each test. 16 * First fake route created before each test.
17 * @type {media_router.Route} 17 * @type {media_router.Route}
18 */ 18 */
19 var fakeRouteOne; 19 var fakeRouteOne;
20 20
21 /** 21 /**
22 * Second fake route created before each test. 22 * Second fake route created before each test.
23 * @type {media_router.Route} 23 * @type {media_router.Route}
24 */ 24 */
25 var fakeRouteTwo; 25 var fakeRouteTwo;
26 26
27 /**
28 * Fake sink that corresponds to |fakeRouteOne|.
29 * @type {media_router.Sink}
30 */
31 var fakeSinkOne;
32
27 // Checks whether |expected| and the text in the span element in 33 // Checks whether |expected| and the text in the span element in
28 // the |elementId| element are equal. 34 // the |elementId| element are equal.
29 var checkSpanText = function(expected, elementId) { 35 var checkSpanText = function(expected, elementId) {
30 assertEquals(expected, 36 assertEquals(expected,
31 details.$[elementId].querySelector('span').innerText); 37 details.$[elementId].querySelector('span').innerText);
32 }; 38 };
33 39
34 // Checks the default route view is shown. 40 // Checks the default route view is shown.
35 var checkDefaultViewIsShown = function() { 41 var checkDefaultViewIsShown = function() {
36 assertFalse(details.$['route-information'].hasAttribute('hidden')); 42 assertFalse(details.$['route-information'].hasAttribute('hidden'));
37 assertTrue(details.$['custom-controller'].hasAttribute('hidden')); 43 assertTrue(
44 details.$$('extension-view-wrapper').hasAttribute('hidden'));
38 }; 45 };
39 46
40 // Checks the default route view is shown. 47 // Checks the start button is shown.
41 var checkStartCastButtonIsShown = function() { 48 var checkStartCastButtonIsShown = function() {
42 assertFalse( 49 assertFalse(
43 details.$['start-casting-to-route-button'].hasAttribute('hidden')); 50 details.$['start-casting-to-route-button'].hasAttribute('hidden'));
44 }; 51 };
45 52
46 // Checks the default route view is not shown. 53 // Checks the start button is not shown.
47 var checkStartCastButtonIsNotShown = function() { 54 var checkStartCastButtonIsNotShown = function() {
48 assertTrue( 55 assertTrue(
49 details.$['start-casting-to-route-button'].hasAttribute('hidden')); 56 details.$['start-casting-to-route-button'].hasAttribute('hidden'));
50 }; 57 };
51 58
52 // Checks the custom controller is shown. 59 // Checks the custom controller is shown.
53 var checkCustomControllerIsShown = function() { 60 var checkCustomControllerIsShown = function() {
54 assertTrue(details.$['route-information'].hasAttribute('hidden')); 61 assertTrue(details.$['route-information'].hasAttribute('hidden'));
55 assertFalse(details.$['custom-controller'].hasAttribute('hidden')); 62 assertFalse(
63 details.$$('extension-view-wrapper').hasAttribute('hidden'));
56 }; 64 };
57 65
58 // Checks whether |expected| and the text in the |elementId| element 66 // Checks whether |expected| and the text in the |elementId| element
59 // are equal given an id. 67 // are equal given an id.
60 var checkElementTextWithId = function(expected, elementId) { 68 var checkElementTextWithId = function(expected, elementId) {
61 assertEquals(expected, details.$[elementId].innerText); 69 assertEquals(expected, details.$[elementId].innerText);
62 }; 70 };
63 71
64 /**
65 * Fake sink that corresponds to |fakeRouteOne|.
66 * @type {media_router.Sink}
67 */
68 var fakeSinkOne;
69
70 // Import route_details.html before running suite. 72 // Import route_details.html before running suite.
71 suiteSetup(function() { 73 suiteSetup(function() {
72 return PolymerTest.importHtml( 74 return PolymerTest.importHtml(
73 'chrome://media-router/elements/route_details/' + 75 'chrome://media-router/elements/route_details/' +
74 'route_details.html'); 76 'route_details.html');
75 }); 77 });
76 78
77 // Initialize a route-details before each test. 79 // Initialize a route-details before each test.
78 setup(function(done) { 80 setup(function(done) {
79 PolymerTest.clearBody(); 81 PolymerTest.clearBody();
80 details = document.createElement('route-details'); 82 details = document.createElement('route-details');
83 details.useWebUiRouteControls = false;
81 document.body.appendChild(details); 84 document.body.appendChild(details);
82 85
83 // Initialize routes and sinks. 86 // Initialize routes and sinks.
84 fakeRouteOne = new media_router.Route('route id 1', 'sink id 1', 87 fakeRouteOne = new media_router.Route('route id 1', 'sink id 1',
85 'Video 1', 1, true, false, 88 'Video 1', 1, true, false,
86 'chrome-extension://123/custom_view.html'); 89 'chrome-extension://123/custom_view.html');
87 fakeRouteTwo = new media_router.Route('route id 2', 'sink id 2', 90 fakeRouteTwo = new media_router.Route('route id 2', 'sink id 2',
88 'Video 2', 2, false, true); 91 'Video 2', 2, false, true);
89 fakeSinkOne = new media_router.Sink( 92 fakeSinkOne = new media_router.Sink(
90 'sink id 1', 'sink 1', 'description', null, 93 'sink id 1', 'sink 1', 'description', null,
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 details.route = fakeRouteTwo; 195 details.route = fakeRouteTwo;
193 assertEquals(fakeRouteTwo, details.route); 196 assertEquals(fakeRouteTwo, details.route);
194 checkSpanText(loadTimeData.getStringF('castingActivityStatus', 197 checkSpanText(loadTimeData.getStringF('castingActivityStatus',
195 fakeRouteTwo.description), 'route-information'); 198 fakeRouteTwo.description), 'route-information');
196 checkDefaultViewIsShown(); 199 checkDefaultViewIsShown();
197 checkStartCastButtonIsShown(); 200 checkStartCastButtonIsShown();
198 }); 201 });
199 202
200 // Tests when |route| exists, has a custom controller, and it loads. 203 // Tests when |route| exists, has a custom controller, and it loads.
201 test('route has custom controller and loading succeeds', function(done) { 204 test('route has custom controller and loading succeeds', function(done) {
202 var loadInvoked = false; 205 details.$$('extension-view-wrapper').$['custom-controller'].load =
203 details.$['custom-controller'].load = function(url) { 206 function(url) {
204 loadInvoked = true; 207 setTimeout(function() {
205 assertEquals('chrome-extension://123/custom_view.html', url); 208 assertEquals('chrome-extension://123/custom_view.html', url);
206 return Promise.resolve(); 209 checkCustomControllerIsShown();
207 }; 210 done();
211 });
212 return Promise.resolve();
213 };
208 214
209 details.route = fakeRouteOne; 215 details.route = fakeRouteOne;
210 setTimeout(function() {
211 assertTrue(loadInvoked);
212 checkCustomControllerIsShown();
213 done();
214 });
215 }); 216 });
216 217
217 // Tests when |route| exists, has a custom controller, but fails to load. 218 // Tests when |route| exists, has a custom controller, but fails to load.
218 test('route has custom controller but loading fails', function(done) { 219 test('route has custom controller but loading fails', function(done) {
219 var loadInvoked = false; 220 details.$$('extension-view-wrapper').$['custom-controller'].load =
220 details.$['custom-controller'].load = function(url) { 221 function(url) {
221 loadInvoked = true; 222 setTimeout(function() {
222 return Promise.reject(); 223 checkDefaultViewIsShown();
223 }; 224 done();
225 });
226 return Promise.reject();
227 };
224 228
225 details.route = fakeRouteOne; 229 details.route = fakeRouteOne;
226 setTimeout(function() {
227 assertTrue(loadInvoked);
228 checkDefaultViewIsShown();
229 done();
230 });
231 }); 230 });
232 }); 231 });
233 } 232 }
234 233
235 return { 234 return {
236 registerTests: registerTests, 235 registerTests: registerTests,
237 }; 236 };
238 }); 237 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698