| OLD | NEW |
| 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 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 116 message_handler_->SetWebUIForTest(&web_ui_); | 116 message_handler_->SetWebUIForTest(&web_ui_); |
| 117 } | 117 } |
| 118 | 118 |
| 119 MediaSink CreateSinkCompatibleWithAllSources() { | 119 MediaSink CreateSinkCompatibleWithAllSources() { |
| 120 MediaSink sink("sinkId", "sinkName", MediaSink::GENERIC); | 120 MediaSink sink("sinkId", "sinkName", MediaSink::GENERIC); |
| 121 for (auto* observer : media_sinks_observers_) | 121 for (auto* observer : media_sinks_observers_) |
| 122 observer->OnSinksUpdated({sink}, std::vector<url::Origin>()); | 122 observer->OnSinksUpdated({sink}, std::vector<url::Origin>()); |
| 123 return sink; | 123 return sink; |
| 124 } | 124 } |
| 125 | 125 |
| 126 scoped_refptr<MockMediaRouteController> CreateMediaRouteController( |
| 127 const MediaRoute::Id& route_id) { |
| 128 mojom::MediaControllerPtr mojo_media_controller; |
| 129 mojo::MakeRequest(&mojo_media_controller); |
| 130 return scoped_refptr<MockMediaRouteController>(new MockMediaRouteController( |
| 131 route_id, std::move(mojo_media_controller), &mock_router_)); |
| 132 } |
| 133 |
| 126 // Notifies MediaRouterUI that a route details view has been opened. Expects | 134 // Notifies MediaRouterUI that a route details view has been opened. Expects |
| 127 // MediaRouterUI to request a MediaRouteController, and gives it a mock | 135 // MediaRouterUI to request a MediaRouteController, and gives it a mock |
| 128 // controller. Returns a reference to the mock controller. | 136 // controller. Returns a reference to the mock controller. |
| 129 scoped_refptr<MockMediaRouteController> OpenUIDetailsView( | 137 scoped_refptr<MockMediaRouteController> OpenUIDetailsView( |
| 130 const MediaRoute::Id& route_id) { | 138 const MediaRoute::Id& route_id) { |
| 139 auto controller = CreateMediaRouteController(route_id); |
| 131 MediaSource media_source("mediaSource"); | 140 MediaSource media_source("mediaSource"); |
| 132 MediaRoute route(route_id, media_source, "sinkId", "", true, "", true); | 141 MediaRoute route(route_id, media_source, "sinkId", "", true, "", true); |
| 133 mojom::MediaControllerPtr mojo_media_controller; | |
| 134 mojo::MakeRequest(&mojo_media_controller); | |
| 135 scoped_refptr<MockMediaRouteController> controller = | |
| 136 new MockMediaRouteController(route_id, std::move(mojo_media_controller), | |
| 137 &mock_router_); | |
| 138 | 142 |
| 139 media_router_ui_->OnRoutesUpdated({route}, std::vector<MediaRoute::Id>()); | 143 media_router_ui_->OnRoutesUpdated({route}, std::vector<MediaRoute::Id>()); |
| 140 EXPECT_CALL(mock_router_, GetRouteController(route_id)) | 144 EXPECT_CALL(mock_router_, GetRouteController(route_id)) |
| 141 .WillOnce(Return(controller)); | 145 .WillOnce(Return(controller)); |
| 142 media_router_ui_->OnMediaControllerUIAvailable(route_id); | 146 media_router_ui_->OnMediaControllerUIAvailable(route_id); |
| 143 | 147 |
| 144 return controller; | 148 return controller; |
| 145 } | 149 } |
| 146 | 150 |
| 147 protected: | 151 protected: |
| (...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 650 MediaStatus status; | 654 MediaStatus status; |
| 651 status.title = "test title"; | 655 status.title = "test title"; |
| 652 CreateMediaRouterUI(profile()); | 656 CreateMediaRouterUI(profile()); |
| 653 scoped_refptr<MockMediaRouteController> controller = | 657 scoped_refptr<MockMediaRouteController> controller = |
| 654 OpenUIDetailsView("routeId"); | 658 OpenUIDetailsView("routeId"); |
| 655 | 659 |
| 656 // The route controller observer held by MediaRouterUI should send the status | 660 // The route controller observer held by MediaRouterUI should send the status |
| 657 // update to the message handler. | 661 // update to the message handler. |
| 658 EXPECT_CALL(*message_handler_, UpdateMediaRouteStatus(status)); | 662 EXPECT_CALL(*message_handler_, UpdateMediaRouteStatus(status)); |
| 659 controller->OnMediaStatusUpdated(status); | 663 controller->OnMediaStatusUpdated(status); |
| 664 } |
| 660 | 665 |
| 661 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&mock_router_)); | 666 TEST_F(MediaRouterUITest, SendInitialMediaStatusUpdate) { |
| 667 MediaStatus status; |
| 668 status.title = "test title"; |
| 669 std::string route_id = "routeId"; |
| 670 auto controller = CreateMediaRouteController(route_id); |
| 671 controller->OnMediaStatusUpdated(status); |
| 672 |
| 673 CreateMediaRouterUI(profile()); |
| 674 MediaSource media_source("mediaSource"); |
| 675 MediaRoute route(route_id, media_source, "sinkId", "", true, "", true); |
| 676 media_router_ui_->OnRoutesUpdated({route}, std::vector<MediaRoute::Id>()); |
| 677 |
| 678 // If the controller has already received a media status update, MediaRouterUI |
| 679 // should be notified with it when it starts observing the controller. |
| 680 EXPECT_CALL(mock_router_, GetRouteController(route_id)) |
| 681 .WillOnce(Return(controller)); |
| 682 EXPECT_CALL(*message_handler_, UpdateMediaRouteStatus(status)); |
| 683 media_router_ui_->OnMediaControllerUIAvailable(route_id); |
| 662 } | 684 } |
| 663 | 685 |
| 664 } // namespace media_router | 686 } // namespace media_router |
| OLD | NEW |