Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 }); |
| OLD | NEW |