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

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

Issue 2938173004: [Media Router] Add a supports_web_ui_controller attribute to MediaRoute (Closed)
Patch Set: Created 3 years, 6 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/renderer/resources/extensions/media_router_bindings.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 * routes. 6 * routes.
7 */ 7 */
8 cr.define('media_router_container_route', function() { 8 cr.define('media_router_container_route', function() {
9 function registerTests() { 9 function registerTests() {
10 suite('MediaRouterContainerRoute', function() { 10 suite('MediaRouterContainerRoute', function() {
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 * @type {!Array<!media_router.Route>} 72 * @type {!Array<!media_router.Route>}
73 */ 73 */
74 var fakeRouteList = []; 74 var fakeRouteList = [];
75 75
76 /** 76 /**
77 * The list of available sinks. 77 * The list of available sinks.
78 * @type {!Array<!media_router.Sink>} 78 * @type {!Array<!media_router.Sink>}
79 */ 79 */
80 var fakeSinkList = []; 80 var fakeSinkList = [];
81 81
82 /**
83 * Sets |container| to use |fakeSinkList| and |fakeRouteList|, and chooses
84 * the sink at the index.
85 * @param {number} index
86 * @return {!Promise<void>}
87 */
88 var chooseSinkAtIndex = function(index) {
89 container.allSinks = fakeSinkList;
90 container.routeList = fakeRouteList;
91 return new Promise(function(resolve) {
92 setTimeout(function() {
93 var sinkList = container.shadowRoot.getElementById('sink-list')
94 .querySelectorAll('paper-item');
95 // Start from the SINK_LIST view.
96 container.showSinkList_();
97 checkCurrentView(media_router.MediaRouterView.SINK_LIST);
98 MockInteractions.tap(sinkList[index]);
99 resolve();
100 });
101 });
102 };
103
82 // Import media_router_container.html before running suite. 104 // Import media_router_container.html before running suite.
83 suiteSetup(function() { 105 suiteSetup(function() {
84 return PolymerTest.importHtml( 106 return PolymerTest.importHtml(
85 'chrome://media-router/elements/media_router_container/' + 107 'chrome://media-router/elements/media_router_container/' +
86 'media_router_container.html'); 108 'media_router_container.html');
87 }); 109 });
88 110
89 setup(function(done) { 111 setup(function(done) {
90 PolymerTest.clearBody(); 112 PolymerTest.clearBody();
91 // Initialize a media-router-container before each test. 113 // Initialize a media-router-container before each test.
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 // Tap on a sink without a route, which should fire a 'create-route' 160 // Tap on a sink without a route, which should fire a 'create-route'
139 // event. 161 // event.
140 assertEquals(fakeSinkList.length, sinkList.length); 162 assertEquals(fakeSinkList.length, sinkList.length);
141 MockInteractions.tap(sinkList[2]); 163 MockInteractions.tap(sinkList[2]);
142 }); 164 });
143 }); 165 });
144 166
145 // Tests that selecting a sink with an associated route will make the 167 // Tests that selecting a sink with an associated route will make the
146 // |container| switch to ROUTE_DETAILS view. 168 // |container| switch to ROUTE_DETAILS view.
147 test('select sink with a route', function(done) { 169 test('select sink with a route', function(done) {
148 container.allSinks = fakeSinkList; 170 chooseSinkAtIndex(0).then(function() {
149 container.routeList = fakeRouteList;
150
151 setTimeout(function() {
152 var sinkList =
153 container.shadowRoot.getElementById('sink-list')
154 .querySelectorAll('paper-item');
155
156 // Start from the SINK_LIST view.
157 container.showSinkList_();
158 checkCurrentView(media_router.MediaRouterView.SINK_LIST);
159 MockInteractions.tap(sinkList[0]);
160 checkCurrentView(media_router.MediaRouterView.ROUTE_DETAILS); 171 checkCurrentView(media_router.MediaRouterView.ROUTE_DETAILS);
161 done(); 172 done();
162 }); 173 });
163 }); 174 });
164 175
176 test('uses WebUI controls when they are available', function(done) {
177 var index = 0;
178 container.webUiRouteControlsAvailable = true;
179 fakeRouteList[index].supportsWebUiController = true;
180 chooseSinkAtIndex(index).then(function() {
181 assertTrue(container.useWebUiRouteControls);
182 done();
183 });
184 });
185
186 test(
187 'does not use WebUI controls when they are not available',
188 function(done) {
189 var index = 0;
190 container.webUiRouteControlsAvailable = false;
191 fakeRouteList[index].supportsWebUiController = true;
192 chooseSinkAtIndex(index).then(function() {
193 assertFalse(container.useWebUiRouteControls);
194 done();
195 });
196 });
197
198 test(
199 'does not use WebUI controls when the route does not support them',
200 function(done) {
201 var index = 0;
202 container.webUiRouteControlsAvailable = true;
203 fakeRouteList[index].supportsWebUiController = false;
204 chooseSinkAtIndex(index).then(function() {
205 assertFalse(container.useWebUiRouteControls);
206 done();
207 });
208 });
takumif 2017/06/15 21:59:41 Hmm I'm not super happy with how the code is forma
209
165 // Tests the text shown for the sink list. 210 // Tests the text shown for the sink list.
166 test('initial sink list route text', function(done) { 211 test('initial sink list route text', function(done) {
167 // Sink 1 - no sink description, no route -> no subtext 212 // Sink 1 - no sink description, no route -> no subtext
168 // Sink 2 - sink description, no route -> subtext = sink description 213 // Sink 2 - sink description, no route -> subtext = sink description
169 // Sink 3 - no sink description, route -> subtext = route description 214 // Sink 3 - no sink description, route -> subtext = route description
170 // Sink 4 - sink description, route -> subtext = route description 215 // Sink 4 - sink description, route -> subtext = route description
171 container.allSinks = [ 216 container.allSinks = [
172 new media_router.Sink('sink id 1', 'Sink 1', null, null, 217 new media_router.Sink('sink id 1', 'Sink 1', null, null,
173 media_router.SinkIconType.CAST, 218 media_router.SinkIconType.CAST,
174 media_router.SinkStatus.ACTIVE, [1, 2, 3]), 219 media_router.SinkStatus.ACTIVE, [1, 2, 3]),
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
512 done(); 557 done();
513 }); 558 });
514 }); 559 });
515 }); 560 });
516 } 561 }
517 562
518 return { 563 return {
519 registerTests: registerTests, 564 registerTests: registerTests,
520 }; 565 };
521 }); 566 });
OLDNEW
« no previous file with comments | « chrome/renderer/resources/extensions/media_router_bindings.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698