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

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

Issue 2874283002: [Media Router] Notify MRUI of a media status update when it starts observing (Closed)
Patch Set: 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 #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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698