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

Unified Diff: chrome/browser/media/router/media_router_base_unittest.cc

Issue 2731043002: [Media Router] Add a presentation id to MediaRoute mapping in the MR (Closed)
Patch Set: resolve code review comments from Derek Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/router/media_router_base_unittest.cc
diff --git a/chrome/browser/media/router/media_router_base_unittest.cc b/chrome/browser/media/router/media_router_base_unittest.cc
index 4b942cfcd1f2134bbe52d1fcac6e60c930fb5b54..1754ce9bd6a7443fab30e10329b1b7da63b0645b 100644
--- a/chrome/browser/media/router/media_router_base_unittest.cc
+++ b/chrome/browser/media/router/media_router_base_unittest.cc
@@ -39,6 +39,16 @@ class MockMediaRouterBase : public MockMediaRouter {
std::vector<MediaRoute> GetCurrentRoutes() const override {
return MediaRouterBase::GetCurrentRoutes();
}
+
+ const MediaRoute* GetPresentationRoute(
+ const std::string& presentation_id) const override {
+ return MediaRouterBase::GetPresentationRoute(presentation_id);
+ }
+
+ void SetPresentationId(const MediaRoute::Id& route_id,
+ const std::string& presentation_id) override {
+ MediaRouterBase::SetPresentationId(route_id, presentation_id);
+ }
};
class MediaRouterBaseTest : public testing::Test {
@@ -136,4 +146,98 @@ TEST_F(MediaRouterBaseTest, GetCurrentRoutes) {
EXPECT_TRUE(router_.GetCurrentRoutes().empty());
}
+TEST_F(MediaRouterBaseTest, GetPresentationRoute) {
+ MediaSource source1("source_1");
+ MediaSource source2("source_2");
+ MediaRoute route1("route_1", source1, "sink_1", "", false, "", false);
+ MediaRoute route2("route_2", source2, "sink_2", "", true, "", false);
+ std::string presentation_id1("presentation_id1");
+ std::string presentation_id2("presentation_id2");
+ std::string presentation_id3("presentation_id3");
+ route1.set_presentation_id(presentation_id1);
+ route2.set_presentation_id(presentation_id2);
+ std::vector<MediaRoute> routes = {route1, route2};
+ std::vector<MediaRoute::Id> joinable_route_ids = {"route_1"};
+
+ EXPECT_FALSE(router_.GetPresentationRoute(presentation_id1));
+
+ routes_observer_->OnRoutesUpdated(routes, joinable_route_ids);
+ auto* actual_route1 = router_.GetPresentationRoute(presentation_id1);
+ auto* actual_route2 = router_.GetPresentationRoute(presentation_id2);
+
+ EXPECT_TRUE(actual_route1 && actual_route1->Equals(route1));
+ EXPECT_TRUE(actual_route2 && actual_route2->Equals(route2));
+ EXPECT_FALSE(router_.GetPresentationRoute(presentation_id3));
+
+ routes.erase(routes.begin());
+ routes_observer_->OnRoutesUpdated(routes, joinable_route_ids);
+
+ EXPECT_FALSE(router_.GetPresentationRoute(presentation_id1));
+}
+
+TEST_F(MediaRouterBaseTest, OnRoutes) {
+ MediaSource source1("source_1");
+ MediaSource source2("source_2");
+ MediaRoute route1("route_1", source1, "sink_1", "", false, "", false);
+ MediaRoute route2("route_2", source2, "sink_2", "", true, "", false);
+ std::string presentation_id1("presentation_id1");
+ std::string presentation_id2("presentation_id2");
+ std::string presentation_id3("presentation_id3");
+ std::vector<MediaRoute> routes = {route1, route2};
+ std::vector<MediaRoute::Id> joinable_route_ids = {"route_1"};
+
+ EXPECT_FALSE(router_.GetPresentationRoute(presentation_id1));
+
+ routes_observer_->OnRoutesUpdated(routes, joinable_route_ids);
+ router_.SetPresentationId(route1.media_route_id(), presentation_id1);
+ router_.SetPresentationId(route2.media_route_id(), presentation_id2);
+ router_.SetPresentationId("route3", presentation_id3);
+
+ auto* actual_route1 = router_.GetPresentationRoute(presentation_id1);
+ auto* actual_route2 = router_.GetPresentationRoute(presentation_id2);
+
+ EXPECT_TRUE(actual_route1 && actual_route1->Equals(route1));
+ EXPECT_TRUE(actual_route2 && actual_route2->Equals(route2));
+ EXPECT_FALSE(router_.GetPresentationRoute(presentation_id3));
+
+ routes.erase(routes.begin());
+ routes_observer_->OnRoutesUpdated(routes, joinable_route_ids);
+
+ EXPECT_FALSE(router_.GetPresentationRoute(presentation_id1));
+}
+
+TEST_F(MediaRouterBaseTest, OnRoutesUpdated) {
+ MediaSource source1("source_1");
+ MediaSource source2("source_2");
+ MediaRoute route1("route_1", source1, "sink_1", "", false, "", false);
+ MediaRoute route2("route_2", source2, "sink_2", "", true, "", false);
+ std::string presentation_id1("presentation_id1");
+ std::string presentation_id2("presentation_id2");
+ std::string presentation_id3("presentation_id3");
+ std::string presentation_id4("presentation_id4");
+
+ std::vector<MediaRoute> routes1 = {route1, route2};
+ std::vector<MediaRoute::Id> joinable_route_ids = {"route_1"};
+ routes_observer_->OnRoutesUpdated(routes1, joinable_route_ids);
+ router_.SetPresentationId(route2.media_route_id(), presentation_id2);
+
+ std::vector<MediaRoute> routes2 = {route1, route2};
+ routes_observer_->OnRoutesUpdated(routes2, joinable_route_ids);
+
+ // Preserve old presentation id.
+ auto* actual_route2 = router_.GetPresentationRoute(presentation_id2);
+ EXPECT_TRUE(actual_route2 && actual_route2->Equals(route2));
+
+ // Use new presentation id.
+ route1.set_presentation_id(presentation_id3);
+ route2.set_presentation_id(presentation_id4);
+
+ std::vector<MediaRoute> routes3 = {route1, route2};
+ routes_observer_->OnRoutesUpdated(routes3, joinable_route_ids);
+
+ EXPECT_FALSE(router_.GetPresentationRoute(presentation_id2));
+ auto* actual_route4 = router_.GetPresentationRoute(presentation_id4);
+ EXPECT_TRUE(actual_route4 && actual_route4->Equals(route2));
+}
+
} // namespace media_router

Powered by Google App Engine
This is Rietveld 408576698