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

Unified Diff: chrome/browser/ui/webui/media_router/media_router_ui_unittest.cc

Issue 2518083002: Deprecated: [Media Router] Ensure dialog shows route details view if there is one local route (Closed)
Patch Set: Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/media_router/media_router_ui_unittest.cc
diff --git a/chrome/browser/ui/webui/media_router/media_router_ui_unittest.cc b/chrome/browser/ui/webui/media_router/media_router_ui_unittest.cc
index 2fe3a8390b1cdc492553d7ec28b915738ccdb962..b7858c689999437dc8e1697c652af2dc9b888fde 100644
--- a/chrome/browser/ui/webui/media_router/media_router_ui_unittest.cc
+++ b/chrome/browser/ui/webui/media_router/media_router_ui_unittest.cc
@@ -63,6 +63,20 @@ class MockRoutesUpdatedCallback {
const std::vector<MediaRoute::Id>& joinable_route_ids));
};
+class MockMediaRouterWebUIMessageHandler
+ : public MediaRouterWebUIMessageHandler {
+ public:
+ explicit MockMediaRouterWebUIMessageHandler(MediaRouterUI* media_router_ui)
+ : MediaRouterWebUIMessageHandler(media_router_ui) {}
+ ~MockMediaRouterWebUIMessageHandler() override {}
+
+ MOCK_METHOD3(UpdateRoutes,
+ void(const std::vector<MediaRoute>& routes,
+ const std::vector<MediaRoute::Id>& joinable_route_ids,
+ const std::unordered_map<MediaRoute::Id, MediaCastMode>&
+ current_cast_modes));
+};
+
class MediaRouterUITest : public ::testing::Test {
public:
~MediaRouterUITest() override {
@@ -79,9 +93,9 @@ class MediaRouterUITest : public ::testing::Test {
web_contents_.reset(content::WebContents::Create(
content::WebContents::CreateParams(profile)));
web_ui_.set_web_contents(web_contents_.get());
- media_router_ui_.reset(new MediaRouterUI(&web_ui_));
- message_handler_.reset(
- new MediaRouterWebUIMessageHandler(media_router_ui_.get()));
+ media_router_ui_ = base::MakeUnique<MediaRouterUI>(&web_ui_);
+ message_handler_ = base::MakeUnique<MockMediaRouterWebUIMessageHandler>(
+ media_router_ui_.get());
EXPECT_CALL(mock_router_, RegisterMediaSinksObserver(_))
.WillRepeatedly(Invoke([this](MediaSinksObserver* observer) {
this->media_sinks_observers_.push_back(observer);
@@ -111,7 +125,7 @@ class MediaRouterUITest : public ::testing::Test {
std::unique_ptr<content::WebContents> web_contents_;
std::unique_ptr<CreatePresentationConnectionRequest> create_session_request_;
std::unique_ptr<MediaRouterUI> media_router_ui_;
- std::unique_ptr<MediaRouterWebUIMessageHandler> message_handler_;
+ std::unique_ptr<MockMediaRouterWebUIMessageHandler> message_handler_;
std::vector<MediaSinksObserver*> media_sinks_observers_;
};
@@ -560,4 +574,45 @@ TEST_F(MediaRouterUITest, AbortErrorOnClose) {
// callback.
media_router_ui_.reset();
}
+
+TEST_F(MediaRouterUITest, UpdateRoutesOnUIInitialized) {
+ std::vector<MediaRoute> routes;
+ std::vector<MediaRoute::Id> joinable_route_ids1;
+ std::vector<MediaRoute::Id> joinable_route_ids2;
+ routes.push_back(MediaRoute("routeId1", MediaSource("sourceId"), "sinkId1",
+ "desc 1", true, "", true));
+ routes.push_back(MediaRoute("routeId2", MediaSource("sourceId"), "sinkId2",
+ "desc 2", true, "", false));
+ joinable_route_ids1.push_back("routeId1");
+
+ // If UIInitialized() is called before OnRoutesUpdated() is called for the
+ // first time, then UpdateRoutes() should be called from OnRoutesUpdated().
+ CreateMediaRouterUI(&profile_);
+ EXPECT_CALL(*message_handler_.get(), UpdateRoutes(_, _, _)).Times(0);
+ media_router_ui_->UIInitialized();
+ EXPECT_CALL(*message_handler_.get(),
+ UpdateRoutes(SequenceEquals(routes), joinable_route_ids1, _))
+ .Times(1);
+ media_router_ui_->OnRoutesUpdated(routes, joinable_route_ids1);
+ // Subsequent OnRoutesUpdated() calls should call UpdateRoutes().
+ EXPECT_CALL(*message_handler_.get(),
+ UpdateRoutes(SequenceEquals(routes), joinable_route_ids2, _))
+ .Times(1);
+ media_router_ui_->OnRoutesUpdated(routes, joinable_route_ids2);
+
+ // If UIInitialized() is called after OnRoutesUpdated() is called for the
+ // first time, then UpdateRoutes() should be called from UIInitialized().
+ CreateMediaRouterUI(&profile_);
mark a. foltz 2016/11/29 22:24:10 Nit: Calling this twice in the same test re-uses t
+ EXPECT_CALL(*message_handler_.get(), UpdateRoutes(_, _, _)).Times(0);
+ media_router_ui_->OnRoutesUpdated(routes, joinable_route_ids1);
+ EXPECT_CALL(*message_handler_.get(),
+ UpdateRoutes(SequenceEquals(routes), joinable_route_ids1, _))
+ .Times(1);
+ media_router_ui_->UIInitialized();
+ // Subsequent OnRoutesUpdated() calls should call UpdateRoutes().
+ EXPECT_CALL(*message_handler_.get(),
+ UpdateRoutes(SequenceEquals(routes), joinable_route_ids2, _))
+ .Times(1);
+ media_router_ui_->OnRoutesUpdated(routes, joinable_route_ids2);
+}
} // namespace media_router

Powered by Google App Engine
This is Rietveld 408576698