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

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

Issue 1415103006: Non-Local Join for Media Router and Presentation API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing ChromeOS System Tray Test Created 4 years, 11 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "chrome/browser/media/router/media_route.h" 6 #include "chrome/browser/media/router/media_route.h"
7 #include "chrome/browser/media/router/mock_media_router.h" 7 #include "chrome/browser/media/router/mock_media_router.h"
8 #include "chrome/browser/ui/webui/media_router/media_router_ui.h" 8 #include "chrome/browser/ui/webui/media_router/media_router_ui.h"
9 #include "chrome/test/base/testing_profile.h" 9 #include "chrome/test/base/testing_profile.h"
10 #include "content/public/test/test_browser_thread_bundle.h" 10 #include "content/public/test/test_browser_thread_bundle.h"
11 #include "content/public/test/test_web_ui.h" 11 #include "content/public/test/test_web_ui.h"
12 #include "extensions/browser/extension_registry.h" 12 #include "extensions/browser/extension_registry.h"
13 #include "extensions/common/extension.h" 13 #include "extensions/common/extension.h"
14 #include "extensions/common/extension_builder.h" 14 #include "extensions/common/extension_builder.h"
15 #include "extensions/common/test_util.h" 15 #include "extensions/common/test_util.h"
16 #include "extensions/common/value_builder.h" 16 #include "extensions/common/value_builder.h"
17 #include "testing/gmock/include/gmock/gmock.h" 17 #include "testing/gmock/include/gmock/gmock.h"
18 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
19 19
20 using testing::_; 20 using testing::_;
21 using testing::SaveArg; 21 using testing::SaveArg;
22 22
23 namespace media_router { 23 namespace media_router {
24 24
25 class MockRoutesUpdatedCallback { 25 class MockRoutesUpdatedCallback {
26 public: 26 public:
27 MOCK_METHOD1(OnRoutesUpdated, void(const std::vector<MediaRoute>& routes)); 27 MOCK_METHOD2(OnRoutesUpdated,
28 void(const std::vector<MediaRoute>& routes,
29 const std::vector<MediaRoute::Id>& joinable_route_ids));
28 }; 30 };
29 31
30 class MediaRouterUITest : public ::testing::Test { 32 class MediaRouterUITest : public ::testing::Test {
31 public: 33 public:
32 MediaRouterUITest() { 34 MediaRouterUITest() {
33 web_contents_.reset(content::WebContents::Create( 35 web_contents_.reset(content::WebContents::Create(
34 content::WebContents::CreateParams(&profile_))); 36 content::WebContents::CreateParams(&profile_)));
35 web_ui_.set_web_contents(web_contents_.get()); 37 web_ui_.set_web_contents(web_contents_.get());
36 media_router_ui_.reset(new MediaRouterUI(&web_ui_)); 38 media_router_ui_.reset(new MediaRouterUI(&web_ui_));
37 } 39 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 media_router_ui_->OnResultsUpdated(unsorted_sinks); 72 media_router_ui_->OnResultsUpdated(unsorted_sinks);
71 const auto& sorted_sinks = media_router_ui_->sinks_; 73 const auto& sorted_sinks = media_router_ui_->sinks_;
72 EXPECT_EQ(sink_name2, sorted_sinks[0].sink.name()); 74 EXPECT_EQ(sink_name2, sorted_sinks[0].sink.name());
73 EXPECT_EQ(sink_id3, sorted_sinks[1].sink.id()); 75 EXPECT_EQ(sink_id3, sorted_sinks[1].sink.id());
74 EXPECT_EQ(sink_id1, sorted_sinks[2].sink.id()); 76 EXPECT_EQ(sink_id1, sorted_sinks[2].sink.id());
75 } 77 }
76 78
77 TEST_F(MediaRouterUITest, UIMediaRoutesObserverFiltersNonDisplayRoutes) { 79 TEST_F(MediaRouterUITest, UIMediaRoutesObserverFiltersNonDisplayRoutes) {
78 MockMediaRouter mock_router; 80 MockMediaRouter mock_router;
79 EXPECT_CALL(mock_router, RegisterMediaRoutesObserver(_)).Times(1); 81 EXPECT_CALL(mock_router, RegisterMediaRoutesObserver(_)).Times(1);
82 MediaSource media_source("mediaSource");
80 MockRoutesUpdatedCallback mock_callback; 83 MockRoutesUpdatedCallback mock_callback;
81 scoped_ptr<MediaRouterUI::UIMediaRoutesObserver> observer( 84 scoped_ptr<MediaRouterUI::UIMediaRoutesObserver> observer(
82 new MediaRouterUI::UIMediaRoutesObserver( 85 new MediaRouterUI::UIMediaRoutesObserver(
83 &mock_router, base::Bind(&MockRoutesUpdatedCallback::OnRoutesUpdated, 86 &mock_router, media_source.id(),
84 base::Unretained(&mock_callback)))); 87 base::Bind(&MockRoutesUpdatedCallback::OnRoutesUpdated,
88 base::Unretained(&mock_callback))));
85 89
86 MediaRoute display_route_1("routeId1", MediaSource("mediaSource"), "sinkId1", 90 MediaRoute display_route_1("routeId1", media_source, "sinkId1",
87 "desc 1", true, "", true); 91 "desc 1", true, "", true);
88 MediaRoute non_display_route_1("routeId2", MediaSource("mediaSource"), 92 MediaRoute non_display_route_1("routeId2", media_source,
89 "sinkId2", "desc 2", true, "", false); 93 "sinkId2", "desc 2", true, "", false);
90 MediaRoute display_route_2("routeId2", MediaSource("mediaSource"), "sinkId2", 94 MediaRoute display_route_2("routeId3", media_source, "sinkId2",
91 "desc 2", true, "", true); 95 "desc 2", true, "", true);
92 std::vector<MediaRoute> routes; 96 std::vector<MediaRoute> routes;
93 routes.push_back(display_route_1); 97 routes.push_back(display_route_1);
94 routes.push_back(non_display_route_1); 98 routes.push_back(non_display_route_1);
95 routes.push_back(display_route_2); 99 routes.push_back(display_route_2);
96 100
97 std::vector<MediaRoute> filtered_routes; 101 std::vector<MediaRoute> filtered_routes;
98 EXPECT_CALL(mock_callback, OnRoutesUpdated(_)) 102 EXPECT_CALL(mock_callback, OnRoutesUpdated(_, _)).WillOnce(
99 .WillOnce(SaveArg<0>(&filtered_routes)); 103 SaveArg<0>(&filtered_routes));
100 observer->OnRoutesUpdated(routes); 104 observer->OnRoutesUpdated(routes,
105 std::vector<MediaRoute::Id>());
101 106
102 ASSERT_EQ(2u, filtered_routes.size()); 107 ASSERT_EQ(2u, filtered_routes.size());
103 EXPECT_TRUE(display_route_1.Equals(filtered_routes[0])); 108 EXPECT_TRUE(display_route_1.Equals(filtered_routes[0]));
104 EXPECT_TRUE(filtered_routes[0].for_display()); 109 EXPECT_TRUE(filtered_routes[0].for_display());
105 EXPECT_TRUE(display_route_2.Equals(filtered_routes[1])); 110 EXPECT_TRUE(display_route_2.Equals(filtered_routes[1]));
106 EXPECT_TRUE(filtered_routes[1].for_display()); 111 EXPECT_TRUE(filtered_routes[1].for_display());
107 112
108 EXPECT_CALL(mock_router, UnregisterMediaRoutesObserver(_)).Times(1); 113 EXPECT_CALL(mock_router, UnregisterMediaRoutesObserver(_)).Times(1);
109 observer.reset(); 114 observer.reset();
110 } 115 }
111 116
117 TEST_F(MediaRouterUITest,
118 UIMediaRoutesObserverFiltersNonDisplayJoinableRoutes) {
119 MockMediaRouter mock_router;
120 EXPECT_CALL(mock_router, RegisterMediaRoutesObserver(_)).Times(1);
121 MediaSource media_source("mediaSource");
122 MockRoutesUpdatedCallback mock_callback;
123 scoped_ptr<MediaRouterUI::UIMediaRoutesObserver> observer(
124 new MediaRouterUI::UIMediaRoutesObserver(
125 &mock_router, media_source.id(),
126 base::Bind(&MockRoutesUpdatedCallback::OnRoutesUpdated,
127 base::Unretained(&mock_callback))));
128
129 MediaRoute display_route_1("routeId1", media_source, "sinkId1",
130 "desc 1", true, "", true);
131 MediaRoute non_display_route_1("routeId2", media_source,
132 "sinkId2", "desc 2", true, "", false);
133 MediaRoute display_route_2("routeId3", media_source, "sinkId2",
134 "desc 2", true, "", true);
135 std::vector<MediaRoute> routes;
136 routes.push_back(display_route_1);
137 routes.push_back(non_display_route_1);
138 routes.push_back(display_route_2);
139
140 std::vector<MediaRoute::Id> joinable_route_ids;
141 joinable_route_ids.push_back("routeId1");
142 joinable_route_ids.push_back("routeId2");
143 joinable_route_ids.push_back("routeId3");
144
145 std::vector<MediaRoute::Id> filtered_joinable_route_ids;
146 // Save the filtered joinable routes.
147 EXPECT_CALL(mock_callback, OnRoutesUpdated(_, _)).WillOnce(
148 SaveArg<1>(&filtered_joinable_route_ids));
149 observer->OnRoutesUpdated(routes,
150 joinable_route_ids);
151
152 ASSERT_EQ(2u, filtered_joinable_route_ids.size());
153 EXPECT_EQ(display_route_1.media_route_id(), filtered_joinable_route_ids[0]);
154 EXPECT_EQ(display_route_2.media_route_id(), filtered_joinable_route_ids[1]);
155
156 EXPECT_CALL(mock_router, UnregisterMediaRoutesObserver(_)).Times(1);
157 observer.reset();
158 }
159
112 TEST_F(MediaRouterUITest, GetExtensionNameExtensionPresent) { 160 TEST_F(MediaRouterUITest, GetExtensionNameExtensionPresent) {
113 std::string id = "extensionid"; 161 std::string id = "extensionid";
114 GURL url = GURL("chrome-extension://" + id); 162 GURL url = GURL("chrome-extension://" + id);
115 scoped_ptr<extensions::ExtensionRegistry> registry = 163 scoped_ptr<extensions::ExtensionRegistry> registry =
116 make_scoped_ptr(new extensions::ExtensionRegistry(nullptr)); 164 make_scoped_ptr(new extensions::ExtensionRegistry(nullptr));
117 scoped_refptr<extensions::Extension> app = 165 scoped_refptr<extensions::Extension> app =
118 extensions::test_util::BuildApp(extensions::ExtensionBuilder()) 166 extensions::test_util::BuildApp(extensions::ExtensionBuilder())
119 .MergeManifest( 167 .MergeManifest(
120 extensions::DictionaryBuilder().Set("name", "test app name")) 168 extensions::DictionaryBuilder().Set("name", "test app name"))
121 .SetID(id) 169 .SetID(id)
(...skipping 14 matching lines...) Expand all
136 } 184 }
137 185
138 TEST_F(MediaRouterUITest, GetExtensionNameEmptyWhenNotExtensionURL) { 186 TEST_F(MediaRouterUITest, GetExtensionNameEmptyWhenNotExtensionURL) {
139 GURL url = GURL("https://www.google.com"); 187 GURL url = GURL("https://www.google.com");
140 scoped_ptr<extensions::ExtensionRegistry> registry = 188 scoped_ptr<extensions::ExtensionRegistry> registry =
141 make_scoped_ptr(new extensions::ExtensionRegistry(nullptr)); 189 make_scoped_ptr(new extensions::ExtensionRegistry(nullptr));
142 190
143 EXPECT_EQ("", MediaRouterUI::GetExtensionName(url, registry.get())); 191 EXPECT_EQ("", MediaRouterUI::GetExtensionName(url, registry.get()));
144 } 192 }
145 } // namespace media_router 193 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698