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

Side by Side Diff: chrome/browser/ui/webui/media_router/media_router_ui_unittest.cc

Issue 2540773005: Add GetCurrentRoutes() to MediaRouter API, ensure dialog has routes at init (Closed)
Patch Set: Address Mark's comment 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 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 #include "chrome/browser/ui/webui/media_router/media_router_ui.h" 5 #include "chrome/browser/ui/webui/media_router/media_router_ui.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 58
59 class MockRoutesUpdatedCallback { 59 class MockRoutesUpdatedCallback {
60 public: 60 public:
61 MOCK_METHOD2(OnRoutesUpdated, 61 MOCK_METHOD2(OnRoutesUpdated,
62 void(const std::vector<MediaRoute>& routes, 62 void(const std::vector<MediaRoute>& routes,
63 const std::vector<MediaRoute::Id>& joinable_route_ids)); 63 const std::vector<MediaRoute::Id>& joinable_route_ids));
64 }; 64 };
65 65
66 class MediaRouterUITest : public ChromeRenderViewHostTestHarness { 66 class MediaRouterUITest : public ChromeRenderViewHostTestHarness {
67 public: 67 public:
68 MediaRouterUITest() {
69 ON_CALL(mock_router_, GetCurrentRoutes())
70 .WillByDefault(Return(std::vector<MediaRoute>()));
71 }
72
68 void TearDown() override { 73 void TearDown() override {
69 EXPECT_CALL(mock_router_, UnregisterMediaSinksObserver(_)) 74 EXPECT_CALL(mock_router_, UnregisterMediaSinksObserver(_))
70 .Times(AnyNumber()); 75 .Times(AnyNumber());
71 EXPECT_CALL(mock_router_, UnregisterMediaRoutesObserver(_)) 76 EXPECT_CALL(mock_router_, UnregisterMediaRoutesObserver(_))
72 .Times(AnyNumber()); 77 .Times(AnyNumber());
73 web_ui_contents_.reset(); 78 web_ui_contents_.reset();
74 create_session_request_.reset(); 79 create_session_request_.reset();
75 media_router_ui_.reset(); 80 media_router_ui_.reset();
76 message_handler_.reset(); 81 message_handler_.reset();
77 ChromeRenderViewHostTestHarness::TearDown(); 82 ChromeRenderViewHostTestHarness::TearDown();
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 media_router_ui_->OnResultsUpdated(unsorted_sinks); 277 media_router_ui_->OnResultsUpdated(unsorted_sinks);
273 const auto& sorted_sinks = media_router_ui_->sinks_; 278 const auto& sorted_sinks = media_router_ui_->sinks_;
274 EXPECT_EQ(sink6.sink.id(), sorted_sinks[0].sink.id()); 279 EXPECT_EQ(sink6.sink.id(), sorted_sinks[0].sink.id());
275 EXPECT_EQ(sink4.sink.id(), sorted_sinks[1].sink.id()); 280 EXPECT_EQ(sink4.sink.id(), sorted_sinks[1].sink.id());
276 EXPECT_EQ(sink2.sink.id(), sorted_sinks[2].sink.id()); 281 EXPECT_EQ(sink2.sink.id(), sorted_sinks[2].sink.id());
277 EXPECT_EQ(sink5.sink.id(), sorted_sinks[3].sink.id()); 282 EXPECT_EQ(sink5.sink.id(), sorted_sinks[3].sink.id());
278 EXPECT_EQ(sink1.sink.id(), sorted_sinks[4].sink.id()); 283 EXPECT_EQ(sink1.sink.id(), sorted_sinks[4].sink.id());
279 EXPECT_EQ(sink3.sink.id(), sorted_sinks[5].sink.id()); 284 EXPECT_EQ(sink3.sink.id(), sorted_sinks[5].sink.id());
280 } 285 }
281 286
282 TEST_F(MediaRouterUITest, UIMediaRoutesObserverFiltersNonDisplayRoutes) { 287 TEST_F(MediaRouterUITest, FilterNonDisplayRoutes) {
283 EXPECT_CALL(mock_router_, RegisterMediaRoutesObserver(_)).Times(1); 288 CreateMediaRouterUI(profile());
289
284 MediaSource media_source("mediaSource"); 290 MediaSource media_source("mediaSource");
285 MockRoutesUpdatedCallback mock_callback;
286 std::unique_ptr<MediaRouterUI::UIMediaRoutesObserver> observer(
287 new MediaRouterUI::UIMediaRoutesObserver(
288 &mock_router_, media_source.id(),
289 base::Bind(&MockRoutesUpdatedCallback::OnRoutesUpdated,
290 base::Unretained(&mock_callback))));
291
292 MediaRoute display_route_1("routeId1", media_source, "sinkId1", "desc 1", 291 MediaRoute display_route_1("routeId1", media_source, "sinkId1", "desc 1",
293 true, "", true); 292 true, "", true);
294 MediaRoute non_display_route_1("routeId2", media_source, "sinkId2", "desc 2", 293 MediaRoute non_display_route_1("routeId2", media_source, "sinkId2", "desc 2",
295 true, "", false); 294 true, "", false);
296 MediaRoute display_route_2("routeId3", media_source, "sinkId2", "desc 2", 295 MediaRoute display_route_2("routeId3", media_source, "sinkId2", "desc 2",
297 true, "", true); 296 true, "", true);
298 std::vector<MediaRoute> routes; 297 std::vector<MediaRoute> routes;
299 routes.push_back(display_route_1); 298 routes.push_back(display_route_1);
300 routes.push_back(non_display_route_1); 299 routes.push_back(non_display_route_1);
301 routes.push_back(display_route_2); 300 routes.push_back(display_route_2);
302 301
303 std::vector<MediaRoute> filtered_routes; 302 media_router_ui_->OnRoutesUpdated(routes, std::vector<MediaRoute::Id>());
304 EXPECT_CALL(mock_callback, OnRoutesUpdated(_, _)) 303 ASSERT_EQ(2u, media_router_ui_->routes_.size());
305 .WillOnce(SaveArg<0>(&filtered_routes)); 304 EXPECT_TRUE(display_route_1.Equals(media_router_ui_->routes_[0]));
306 observer->OnRoutesUpdated(routes, std::vector<MediaRoute::Id>()); 305 EXPECT_TRUE(media_router_ui_->routes_[0].for_display());
307 306 EXPECT_TRUE(display_route_2.Equals(media_router_ui_->routes_[1]));
308 ASSERT_EQ(2u, filtered_routes.size()); 307 EXPECT_TRUE(media_router_ui_->routes_[1].for_display());
309 EXPECT_TRUE(display_route_1.Equals(filtered_routes[0]));
310 EXPECT_TRUE(filtered_routes[0].for_display());
311 EXPECT_TRUE(display_route_2.Equals(filtered_routes[1]));
312 EXPECT_TRUE(filtered_routes[1].for_display());
313
314 EXPECT_CALL(mock_router_, UnregisterMediaRoutesObserver(_)).Times(1);
315 observer.reset();
316 } 308 }
317 309
318 TEST_F(MediaRouterUITest, 310 TEST_F(MediaRouterUITest, FilterNonDisplayJoinableRoutes) {
319 UIMediaRoutesObserverFiltersNonDisplayJoinableRoutes) { 311 CreateMediaRouterUI(profile());
320 EXPECT_CALL(mock_router_, RegisterMediaRoutesObserver(_)).Times(1); 312
321 MediaSource media_source("mediaSource"); 313 MediaSource media_source("mediaSource");
322 MockRoutesUpdatedCallback mock_callback;
323 std::unique_ptr<MediaRouterUI::UIMediaRoutesObserver> observer(
324 new MediaRouterUI::UIMediaRoutesObserver(
325 &mock_router_, media_source.id(),
326 base::Bind(&MockRoutesUpdatedCallback::OnRoutesUpdated,
327 base::Unretained(&mock_callback))));
328
329 MediaRoute display_route_1("routeId1", media_source, "sinkId1", "desc 1", 314 MediaRoute display_route_1("routeId1", media_source, "sinkId1", "desc 1",
330 true, "", true); 315 true, "", true);
331 MediaRoute non_display_route_1("routeId2", media_source, "sinkId2", "desc 2", 316 MediaRoute non_display_route_1("routeId2", media_source, "sinkId2", "desc 2",
332 true, "", false); 317 true, "", false);
333 MediaRoute display_route_2("routeId3", media_source, "sinkId2", "desc 2", 318 MediaRoute display_route_2("routeId3", media_source, "sinkId2", "desc 2",
334 true, "", true); 319 true, "", true);
335 std::vector<MediaRoute> routes; 320 std::vector<MediaRoute> routes;
336 routes.push_back(display_route_1); 321 routes.push_back(display_route_1);
337 routes.push_back(non_display_route_1); 322 routes.push_back(non_display_route_1);
338 routes.push_back(display_route_2); 323 routes.push_back(display_route_2);
339 324
340 std::vector<MediaRoute::Id> joinable_route_ids; 325 std::vector<MediaRoute::Id> joinable_route_ids;
341 joinable_route_ids.push_back("routeId1"); 326 joinable_route_ids.push_back("routeId1");
342 joinable_route_ids.push_back("routeId2"); 327 joinable_route_ids.push_back("routeId2");
343 joinable_route_ids.push_back("routeId3"); 328 joinable_route_ids.push_back("routeId3");
344 329
345 std::vector<MediaRoute::Id> filtered_joinable_route_ids; 330 media_router_ui_->OnRoutesUpdated(routes, joinable_route_ids);
346 // Save the filtered joinable routes. 331 ASSERT_EQ(2u, media_router_ui_->joinable_route_ids_.size());
347 EXPECT_CALL(mock_callback, OnRoutesUpdated(_, _)) 332 EXPECT_EQ(display_route_1.media_route_id(),
348 .WillOnce(SaveArg<1>(&filtered_joinable_route_ids)); 333 media_router_ui_->joinable_route_ids_[0]);
349 observer->OnRoutesUpdated(routes, joinable_route_ids); 334 EXPECT_EQ(display_route_2.media_route_id(),
350 335 media_router_ui_->joinable_route_ids_[1]);
351 ASSERT_EQ(2u, filtered_joinable_route_ids.size());
352 EXPECT_EQ(display_route_1.media_route_id(), filtered_joinable_route_ids[0]);
353 EXPECT_EQ(display_route_2.media_route_id(), filtered_joinable_route_ids[1]);
354
355 EXPECT_CALL(mock_router_, UnregisterMediaRoutesObserver(_)).Times(1);
356 observer.reset();
357 } 336 }
358 337
359 TEST_F(MediaRouterUITest, UIMediaRoutesObserverAssignsCurrentCastModes) { 338 TEST_F(MediaRouterUITest, UIMediaRoutesObserverAssignsCurrentCastModes) {
360 CreateMediaRouterUI(profile()); 339 CreateMediaRouterUI(profile());
361 SessionID::id_type tab_id = SessionTabHelper::IdForTab(web_contents()); 340 SessionID::id_type tab_id = SessionTabHelper::IdForTab(web_contents());
362 MediaSource media_source_1(MediaSourceForTab(tab_id)); 341 MediaSource media_source_1(MediaSourceForTab(tab_id));
363 MediaSource media_source_2("mediaSource"); 342 MediaSource media_source_2("mediaSource");
364 MediaSource media_source_3(MediaSourceForDesktop()); 343 MediaSource media_source_3(MediaSourceForDesktop());
365 MockRoutesUpdatedCallback mock_callback; 344 MockRoutesUpdatedCallback mock_callback;
366 std::unique_ptr<MediaRouterUI::UIMediaRoutesObserver> observer( 345 std::unique_ptr<MediaRouterUI::UIMediaRoutesObserver> observer(
(...skipping 15 matching lines...) Expand all
382 361
383 observer->OnRoutesUpdated(routes, std::vector<MediaRoute::Id>()); 362 observer->OnRoutesUpdated(routes, std::vector<MediaRoute::Id>());
384 363
385 const auto& filtered_routes = media_router_ui_->routes(); 364 const auto& filtered_routes = media_router_ui_->routes();
386 ASSERT_EQ(2u, filtered_routes.size()); 365 ASSERT_EQ(2u, filtered_routes.size());
387 EXPECT_TRUE(display_route_1.Equals(filtered_routes[0])); 366 EXPECT_TRUE(display_route_1.Equals(filtered_routes[0]));
388 EXPECT_TRUE(filtered_routes[0].for_display()); 367 EXPECT_TRUE(filtered_routes[0].for_display());
389 EXPECT_TRUE(display_route_2.Equals(filtered_routes[1])); 368 EXPECT_TRUE(display_route_2.Equals(filtered_routes[1]));
390 EXPECT_TRUE(filtered_routes[1].for_display()); 369 EXPECT_TRUE(filtered_routes[1].for_display());
391 370
392 const auto& current_cast_modes = media_router_ui_->current_cast_modes(); 371 const auto& current_cast_modes = media_router_ui_->routes_and_cast_modes();
393 ASSERT_EQ(2u, current_cast_modes.size()); 372 ASSERT_EQ(2u, current_cast_modes.size());
394 auto cast_mode_entry = 373 auto cast_mode_entry =
395 current_cast_modes.find(display_route_1.media_route_id()); 374 current_cast_modes.find(display_route_1.media_route_id());
396 EXPECT_NE(end(current_cast_modes), cast_mode_entry); 375 EXPECT_NE(end(current_cast_modes), cast_mode_entry);
397 EXPECT_EQ(MediaCastMode::TAB_MIRROR, cast_mode_entry->second); 376 EXPECT_EQ(MediaCastMode::TAB_MIRROR, cast_mode_entry->second);
398 cast_mode_entry = 377 cast_mode_entry =
399 current_cast_modes.find(non_display_route_1.media_route_id()); 378 current_cast_modes.find(non_display_route_1.media_route_id());
400 EXPECT_EQ(end(current_cast_modes), cast_mode_entry); 379 EXPECT_EQ(end(current_cast_modes), cast_mode_entry);
401 cast_mode_entry = current_cast_modes.find(display_route_2.media_route_id()); 380 cast_mode_entry = current_cast_modes.find(display_route_2.media_route_id());
402 EXPECT_NE(end(current_cast_modes), cast_mode_entry); 381 EXPECT_NE(end(current_cast_modes), cast_mode_entry);
(...skipping 28 matching lines...) Expand all
431 410
432 observer->OnRoutesUpdated(routes, std::vector<MediaRoute::Id>()); 411 observer->OnRoutesUpdated(routes, std::vector<MediaRoute::Id>());
433 412
434 const auto& filtered_routes = media_router_ui_->routes(); 413 const auto& filtered_routes = media_router_ui_->routes();
435 ASSERT_EQ(2u, filtered_routes.size()); 414 ASSERT_EQ(2u, filtered_routes.size());
436 EXPECT_TRUE(display_route_1.Equals(filtered_routes[0])); 415 EXPECT_TRUE(display_route_1.Equals(filtered_routes[0]));
437 EXPECT_TRUE(filtered_routes[0].for_display()); 416 EXPECT_TRUE(filtered_routes[0].for_display());
438 EXPECT_TRUE(display_route_2.Equals(filtered_routes[1])); 417 EXPECT_TRUE(display_route_2.Equals(filtered_routes[1]));
439 EXPECT_TRUE(filtered_routes[1].for_display()); 418 EXPECT_TRUE(filtered_routes[1].for_display());
440 419
441 const auto& current_cast_modes = media_router_ui_->current_cast_modes(); 420 const auto& current_cast_modes = media_router_ui_->routes_and_cast_modes();
442 ASSERT_EQ(1u, current_cast_modes.size()); 421 ASSERT_EQ(1u, current_cast_modes.size());
443 auto cast_mode_entry = 422 auto cast_mode_entry =
444 current_cast_modes.find(display_route_1.media_route_id()); 423 current_cast_modes.find(display_route_1.media_route_id());
445 // No observer for source "mediaSource1" means no cast mode for this route. 424 // No observer for source "mediaSource1" means no cast mode for this route.
446 EXPECT_EQ(end(current_cast_modes), cast_mode_entry); 425 EXPECT_EQ(end(current_cast_modes), cast_mode_entry);
447 cast_mode_entry = 426 cast_mode_entry =
448 current_cast_modes.find(non_display_route_1.media_route_id()); 427 current_cast_modes.find(non_display_route_1.media_route_id());
449 EXPECT_EQ(end(current_cast_modes), cast_mode_entry); 428 EXPECT_EQ(end(current_cast_modes), cast_mode_entry);
450 cast_mode_entry = current_cast_modes.find(display_route_2.media_route_id()); 429 cast_mode_entry = current_cast_modes.find(display_route_2.media_route_id());
451 EXPECT_NE(end(current_cast_modes), cast_mode_entry); 430 EXPECT_NE(end(current_cast_modes), cast_mode_entry);
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
606 // Selecting desktop mirroring should not change the recorded preferences. 585 // Selecting desktop mirroring should not change the recorded preferences.
607 EXPECT_FALSE(media_router_ui_->UserSelectedTabMirroringForCurrentOrigin()); 586 EXPECT_FALSE(media_router_ui_->UserSelectedTabMirroringForCurrentOrigin());
608 587
609 media_router_ui_->RecordCastModeSelection(MediaCastMode::TAB_MIRROR); 588 media_router_ui_->RecordCastModeSelection(MediaCastMode::TAB_MIRROR);
610 EXPECT_TRUE(media_router_ui_->UserSelectedTabMirroringForCurrentOrigin()); 589 EXPECT_TRUE(media_router_ui_->UserSelectedTabMirroringForCurrentOrigin());
611 media_router_ui_->RecordCastModeSelection(MediaCastMode::DESKTOP_MIRROR); 590 media_router_ui_->RecordCastModeSelection(MediaCastMode::DESKTOP_MIRROR);
612 // Selecting desktop mirroring should not change the recorded preferences. 591 // Selecting desktop mirroring should not change the recorded preferences.
613 EXPECT_TRUE(media_router_ui_->UserSelectedTabMirroringForCurrentOrigin()); 592 EXPECT_TRUE(media_router_ui_->UserSelectedTabMirroringForCurrentOrigin());
614 } 593 }
615 } // namespace media_router 594 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698