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" |
| 6 |
5 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/memory/ptr_util.h" |
6 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
7 #include "chrome/browser/media/router/media_route.h" | 10 #include "chrome/browser/media/router/media_route.h" |
8 #include "chrome/browser/media/router/mock_media_router.h" | 11 #include "chrome/browser/media/router/mock_media_router.h" |
9 #include "chrome/browser/media/router/route_request_result.h" | 12 #include "chrome/browser/media/router/route_request_result.h" |
10 #include "chrome/browser/media/router/test_helper.h" | 13 #include "chrome/browser/media/router/test_helper.h" |
11 #include "chrome/browser/sessions/session_tab_helper.h" | 14 #include "chrome/browser/sessions/session_tab_helper.h" |
12 #include "chrome/browser/ui/webui/media_router/media_router_ui.h" | |
13 #include "chrome/browser/ui/webui/media_router/media_router_webui_message_handle
r.h" | 15 #include "chrome/browser/ui/webui/media_router/media_router_webui_message_handle
r.h" |
14 #include "chrome/grit/generated_resources.h" | 16 #include "chrome/grit/generated_resources.h" |
15 #include "chrome/test/base/testing_profile.h" | 17 #include "chrome/test/base/testing_profile.h" |
16 #include "content/public/test/test_browser_thread_bundle.h" | 18 #include "content/public/test/test_browser_thread_bundle.h" |
17 #include "content/public/test/test_web_ui.h" | 19 #include "content/public/test/test_web_ui.h" |
18 #include "extensions/browser/extension_registry.h" | 20 #include "extensions/browser/extension_registry.h" |
19 #include "extensions/common/extension.h" | 21 #include "extensions/common/extension.h" |
20 #include "extensions/common/extension_builder.h" | 22 #include "extensions/common/extension_builder.h" |
21 #include "extensions/common/test_util.h" | 23 #include "extensions/common/test_util.h" |
22 #include "extensions/common/value_builder.h" | 24 #include "extensions/common/value_builder.h" |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 .Times(AnyNumber()); | 65 .Times(AnyNumber()); |
64 media_router_ui_->InitForTest(&mock_router_, initiator_.get(), | 66 media_router_ui_->InitForTest(&mock_router_, initiator_.get(), |
65 message_handler_.get()); | 67 message_handler_.get()); |
66 message_handler_->SetWebUIForTest(&web_ui_); | 68 message_handler_->SetWebUIForTest(&web_ui_); |
67 } | 69 } |
68 | 70 |
69 protected: | 71 protected: |
70 MockMediaRouter mock_router_; | 72 MockMediaRouter mock_router_; |
71 content::TestBrowserThreadBundle thread_bundle_; | 73 content::TestBrowserThreadBundle thread_bundle_; |
72 TestingProfile profile_; | 74 TestingProfile profile_; |
73 scoped_ptr<content::WebContents> initiator_; | 75 std::unique_ptr<content::WebContents> initiator_; |
74 content::TestWebUI web_ui_; | 76 content::TestWebUI web_ui_; |
75 scoped_ptr<content::WebContents> web_contents_; | 77 std::unique_ptr<content::WebContents> web_contents_; |
76 scoped_ptr<MediaRouterUI> media_router_ui_; | 78 std::unique_ptr<MediaRouterUI> media_router_ui_; |
77 scoped_ptr<MediaRouterWebUIMessageHandler> message_handler_; | 79 std::unique_ptr<MediaRouterWebUIMessageHandler> message_handler_; |
78 }; | 80 }; |
79 | 81 |
80 TEST_F(MediaRouterUITest, RouteCreationTimeoutForTab) { | 82 TEST_F(MediaRouterUITest, RouteCreationTimeoutForTab) { |
81 CreateMediaRouterUI(&profile_); | 83 CreateMediaRouterUI(&profile_); |
82 std::vector<MediaRouteResponseCallback> callbacks; | 84 std::vector<MediaRouteResponseCallback> callbacks; |
83 EXPECT_CALL( | 85 EXPECT_CALL( |
84 mock_router_, | 86 mock_router_, |
85 CreateRoute(_, _, _, _, _, base::TimeDelta::FromSeconds(60), false)) | 87 CreateRoute(_, _, _, _, _, base::TimeDelta::FromSeconds(60), false)) |
86 .WillOnce(SaveArg<4>(&callbacks)); | 88 .WillOnce(SaveArg<4>(&callbacks)); |
87 media_router_ui_->CreateRoute("sinkId", MediaCastMode::TAB_MIRROR); | 89 media_router_ui_->CreateRoute("sinkId", MediaCastMode::TAB_MIRROR); |
88 | 90 |
89 std::string expected_title = l10n_util::GetStringUTF8( | 91 std::string expected_title = l10n_util::GetStringUTF8( |
90 IDS_MEDIA_ROUTER_ISSUE_CREATE_ROUTE_TIMEOUT_FOR_TAB); | 92 IDS_MEDIA_ROUTER_ISSUE_CREATE_ROUTE_TIMEOUT_FOR_TAB); |
91 EXPECT_CALL(mock_router_, AddIssue(IssueTitleEquals(expected_title))); | 93 EXPECT_CALL(mock_router_, AddIssue(IssueTitleEquals(expected_title))); |
92 scoped_ptr<RouteRequestResult> result = | 94 std::unique_ptr<RouteRequestResult> result = |
93 RouteRequestResult::FromError("Timed out", RouteRequestResult::TIMED_OUT); | 95 RouteRequestResult::FromError("Timed out", RouteRequestResult::TIMED_OUT); |
94 for (const auto& callback : callbacks) | 96 for (const auto& callback : callbacks) |
95 callback.Run(*result); | 97 callback.Run(*result); |
96 } | 98 } |
97 | 99 |
98 TEST_F(MediaRouterUITest, RouteCreationTimeoutForDesktop) { | 100 TEST_F(MediaRouterUITest, RouteCreationTimeoutForDesktop) { |
99 CreateMediaRouterUI(&profile_); | 101 CreateMediaRouterUI(&profile_); |
100 std::vector<MediaRouteResponseCallback> callbacks; | 102 std::vector<MediaRouteResponseCallback> callbacks; |
101 EXPECT_CALL( | 103 EXPECT_CALL( |
102 mock_router_, | 104 mock_router_, |
103 CreateRoute(_, _, _, _, _, base::TimeDelta::FromSeconds(120), false)) | 105 CreateRoute(_, _, _, _, _, base::TimeDelta::FromSeconds(120), false)) |
104 .WillOnce(SaveArg<4>(&callbacks)); | 106 .WillOnce(SaveArg<4>(&callbacks)); |
105 media_router_ui_->CreateRoute("sinkId", MediaCastMode::DESKTOP_MIRROR); | 107 media_router_ui_->CreateRoute("sinkId", MediaCastMode::DESKTOP_MIRROR); |
106 | 108 |
107 std::string expected_title = l10n_util::GetStringUTF8( | 109 std::string expected_title = l10n_util::GetStringUTF8( |
108 IDS_MEDIA_ROUTER_ISSUE_CREATE_ROUTE_TIMEOUT_FOR_DESKTOP); | 110 IDS_MEDIA_ROUTER_ISSUE_CREATE_ROUTE_TIMEOUT_FOR_DESKTOP); |
109 EXPECT_CALL(mock_router_, AddIssue(IssueTitleEquals(expected_title))); | 111 EXPECT_CALL(mock_router_, AddIssue(IssueTitleEquals(expected_title))); |
110 scoped_ptr<RouteRequestResult> result = | 112 std::unique_ptr<RouteRequestResult> result = |
111 RouteRequestResult::FromError("Timed out", RouteRequestResult::TIMED_OUT); | 113 RouteRequestResult::FromError("Timed out", RouteRequestResult::TIMED_OUT); |
112 for (const auto& callback : callbacks) | 114 for (const auto& callback : callbacks) |
113 callback.Run(*result); | 115 callback.Run(*result); |
114 } | 116 } |
115 | 117 |
116 TEST_F(MediaRouterUITest, RouteCreationTimeoutForPresentation) { | 118 TEST_F(MediaRouterUITest, RouteCreationTimeoutForPresentation) { |
117 CreateMediaRouterUI(&profile_); | 119 CreateMediaRouterUI(&profile_); |
118 PresentationRequest presentation_request(RenderFrameHostId(0, 0), | 120 PresentationRequest presentation_request(RenderFrameHostId(0, 0), |
119 "https://presentationurl.fakeurl", | 121 "https://presentationurl.fakeurl", |
120 GURL("https://frameurl.fakeurl")); | 122 GURL("https://frameurl.fakeurl")); |
121 media_router_ui_->OnDefaultPresentationChanged(presentation_request); | 123 media_router_ui_->OnDefaultPresentationChanged(presentation_request); |
122 std::vector<MediaRouteResponseCallback> callbacks; | 124 std::vector<MediaRouteResponseCallback> callbacks; |
123 EXPECT_CALL( | 125 EXPECT_CALL( |
124 mock_router_, | 126 mock_router_, |
125 CreateRoute(_, _, _, _, _, base::TimeDelta::FromSeconds(20), false)) | 127 CreateRoute(_, _, _, _, _, base::TimeDelta::FromSeconds(20), false)) |
126 .WillOnce(SaveArg<4>(&callbacks)); | 128 .WillOnce(SaveArg<4>(&callbacks)); |
127 media_router_ui_->CreateRoute("sinkId", MediaCastMode::DEFAULT); | 129 media_router_ui_->CreateRoute("sinkId", MediaCastMode::DEFAULT); |
128 | 130 |
129 std::string expected_title = | 131 std::string expected_title = |
130 l10n_util::GetStringFUTF8(IDS_MEDIA_ROUTER_ISSUE_CREATE_ROUTE_TIMEOUT, | 132 l10n_util::GetStringFUTF8(IDS_MEDIA_ROUTER_ISSUE_CREATE_ROUTE_TIMEOUT, |
131 base::UTF8ToUTF16("frameurl.fakeurl")); | 133 base::UTF8ToUTF16("frameurl.fakeurl")); |
132 EXPECT_CALL(mock_router_, AddIssue(IssueTitleEquals(expected_title))); | 134 EXPECT_CALL(mock_router_, AddIssue(IssueTitleEquals(expected_title))); |
133 scoped_ptr<RouteRequestResult> result = | 135 std::unique_ptr<RouteRequestResult> result = |
134 RouteRequestResult::FromError("Timed out", RouteRequestResult::TIMED_OUT); | 136 RouteRequestResult::FromError("Timed out", RouteRequestResult::TIMED_OUT); |
135 for (const auto& callback : callbacks) | 137 for (const auto& callback : callbacks) |
136 callback.Run(*result); | 138 callback.Run(*result); |
137 } | 139 } |
138 | 140 |
139 TEST_F(MediaRouterUITest, RouteRequestFromIncognito) { | 141 TEST_F(MediaRouterUITest, RouteRequestFromIncognito) { |
140 CreateMediaRouterUI(profile_.GetOffTheRecordProfile()); | 142 CreateMediaRouterUI(profile_.GetOffTheRecordProfile()); |
141 | 143 |
142 PresentationRequest presentation_request( | 144 PresentationRequest presentation_request( |
143 RenderFrameHostId(0, 0), "https://fooUrl", GURL("https://frameUrl")); | 145 RenderFrameHostId(0, 0), "https://fooUrl", GURL("https://frameUrl")); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
175 const auto& sorted_sinks = media_router_ui_->sinks_; | 177 const auto& sorted_sinks = media_router_ui_->sinks_; |
176 EXPECT_EQ(sink_name2, sorted_sinks[0].sink.name()); | 178 EXPECT_EQ(sink_name2, sorted_sinks[0].sink.name()); |
177 EXPECT_EQ(sink_id3, sorted_sinks[1].sink.id()); | 179 EXPECT_EQ(sink_id3, sorted_sinks[1].sink.id()); |
178 EXPECT_EQ(sink_id1, sorted_sinks[2].sink.id()); | 180 EXPECT_EQ(sink_id1, sorted_sinks[2].sink.id()); |
179 } | 181 } |
180 | 182 |
181 TEST_F(MediaRouterUITest, UIMediaRoutesObserverFiltersNonDisplayRoutes) { | 183 TEST_F(MediaRouterUITest, UIMediaRoutesObserverFiltersNonDisplayRoutes) { |
182 EXPECT_CALL(mock_router_, RegisterMediaRoutesObserver(_)).Times(1); | 184 EXPECT_CALL(mock_router_, RegisterMediaRoutesObserver(_)).Times(1); |
183 MediaSource media_source("mediaSource"); | 185 MediaSource media_source("mediaSource"); |
184 MockRoutesUpdatedCallback mock_callback; | 186 MockRoutesUpdatedCallback mock_callback; |
185 scoped_ptr<MediaRouterUI::UIMediaRoutesObserver> observer( | 187 std::unique_ptr<MediaRouterUI::UIMediaRoutesObserver> observer( |
186 new MediaRouterUI::UIMediaRoutesObserver( | 188 new MediaRouterUI::UIMediaRoutesObserver( |
187 &mock_router_, media_source.id(), | 189 &mock_router_, media_source.id(), |
188 base::Bind(&MockRoutesUpdatedCallback::OnRoutesUpdated, | 190 base::Bind(&MockRoutesUpdatedCallback::OnRoutesUpdated, |
189 base::Unretained(&mock_callback)))); | 191 base::Unretained(&mock_callback)))); |
190 | 192 |
191 MediaRoute display_route_1("routeId1", media_source, "sinkId1", "desc 1", | 193 MediaRoute display_route_1("routeId1", media_source, "sinkId1", "desc 1", |
192 true, "", true); | 194 true, "", true); |
193 MediaRoute non_display_route_1("routeId2", media_source, "sinkId2", "desc 2", | 195 MediaRoute non_display_route_1("routeId2", media_source, "sinkId2", "desc 2", |
194 true, "", false); | 196 true, "", false); |
195 MediaRoute display_route_2("routeId3", media_source, "sinkId2", "desc 2", | 197 MediaRoute display_route_2("routeId3", media_source, "sinkId2", "desc 2", |
(...skipping 17 matching lines...) Expand all Loading... |
213 | 215 |
214 EXPECT_CALL(mock_router_, UnregisterMediaRoutesObserver(_)).Times(1); | 216 EXPECT_CALL(mock_router_, UnregisterMediaRoutesObserver(_)).Times(1); |
215 observer.reset(); | 217 observer.reset(); |
216 } | 218 } |
217 | 219 |
218 TEST_F(MediaRouterUITest, | 220 TEST_F(MediaRouterUITest, |
219 UIMediaRoutesObserverFiltersNonDisplayJoinableRoutes) { | 221 UIMediaRoutesObserverFiltersNonDisplayJoinableRoutes) { |
220 EXPECT_CALL(mock_router_, RegisterMediaRoutesObserver(_)).Times(1); | 222 EXPECT_CALL(mock_router_, RegisterMediaRoutesObserver(_)).Times(1); |
221 MediaSource media_source("mediaSource"); | 223 MediaSource media_source("mediaSource"); |
222 MockRoutesUpdatedCallback mock_callback; | 224 MockRoutesUpdatedCallback mock_callback; |
223 scoped_ptr<MediaRouterUI::UIMediaRoutesObserver> observer( | 225 std::unique_ptr<MediaRouterUI::UIMediaRoutesObserver> observer( |
224 new MediaRouterUI::UIMediaRoutesObserver( | 226 new MediaRouterUI::UIMediaRoutesObserver( |
225 &mock_router_, media_source.id(), | 227 &mock_router_, media_source.id(), |
226 base::Bind(&MockRoutesUpdatedCallback::OnRoutesUpdated, | 228 base::Bind(&MockRoutesUpdatedCallback::OnRoutesUpdated, |
227 base::Unretained(&mock_callback)))); | 229 base::Unretained(&mock_callback)))); |
228 | 230 |
229 MediaRoute display_route_1("routeId1", media_source, "sinkId1", "desc 1", | 231 MediaRoute display_route_1("routeId1", media_source, "sinkId1", "desc 1", |
230 true, "", true); | 232 true, "", true); |
231 MediaRoute non_display_route_1("routeId2", media_source, "sinkId2", "desc 2", | 233 MediaRoute non_display_route_1("routeId2", media_source, "sinkId2", "desc 2", |
232 true, "", false); | 234 true, "", false); |
233 MediaRoute display_route_2("routeId3", media_source, "sinkId2", "desc 2", | 235 MediaRoute display_route_2("routeId3", media_source, "sinkId2", "desc 2", |
(...skipping 19 matching lines...) Expand all Loading... |
253 EXPECT_EQ(display_route_1.media_route_id(), filtered_joinable_route_ids[0]); | 255 EXPECT_EQ(display_route_1.media_route_id(), filtered_joinable_route_ids[0]); |
254 EXPECT_EQ(display_route_2.media_route_id(), filtered_joinable_route_ids[1]); | 256 EXPECT_EQ(display_route_2.media_route_id(), filtered_joinable_route_ids[1]); |
255 | 257 |
256 EXPECT_CALL(mock_router_, UnregisterMediaRoutesObserver(_)).Times(1); | 258 EXPECT_CALL(mock_router_, UnregisterMediaRoutesObserver(_)).Times(1); |
257 observer.reset(); | 259 observer.reset(); |
258 } | 260 } |
259 | 261 |
260 TEST_F(MediaRouterUITest, GetExtensionNameExtensionPresent) { | 262 TEST_F(MediaRouterUITest, GetExtensionNameExtensionPresent) { |
261 std::string id = "extensionid"; | 263 std::string id = "extensionid"; |
262 GURL url = GURL("chrome-extension://" + id); | 264 GURL url = GURL("chrome-extension://" + id); |
263 scoped_ptr<extensions::ExtensionRegistry> registry = | 265 std::unique_ptr<extensions::ExtensionRegistry> registry = |
264 make_scoped_ptr(new extensions::ExtensionRegistry(nullptr)); | 266 base::WrapUnique(new extensions::ExtensionRegistry(nullptr)); |
265 scoped_refptr<extensions::Extension> app = | 267 scoped_refptr<extensions::Extension> app = |
266 extensions::test_util::BuildApp(extensions::ExtensionBuilder()) | 268 extensions::test_util::BuildApp(extensions::ExtensionBuilder()) |
267 .MergeManifest(extensions::DictionaryBuilder() | 269 .MergeManifest(extensions::DictionaryBuilder() |
268 .Set("name", "test app name") | 270 .Set("name", "test app name") |
269 .Build()) | 271 .Build()) |
270 .SetID(id) | 272 .SetID(id) |
271 .Build(); | 273 .Build(); |
272 | 274 |
273 ASSERT_TRUE(registry->AddEnabled(app)); | 275 ASSERT_TRUE(registry->AddEnabled(app)); |
274 EXPECT_EQ("test app name", | 276 EXPECT_EQ("test app name", |
275 MediaRouterUI::GetExtensionName(url, registry.get())); | 277 MediaRouterUI::GetExtensionName(url, registry.get())); |
276 } | 278 } |
277 | 279 |
278 TEST_F(MediaRouterUITest, GetExtensionNameEmptyWhenNotInstalled) { | 280 TEST_F(MediaRouterUITest, GetExtensionNameEmptyWhenNotInstalled) { |
279 std::string id = "extensionid"; | 281 std::string id = "extensionid"; |
280 GURL url = GURL("chrome-extension://" + id); | 282 GURL url = GURL("chrome-extension://" + id); |
281 scoped_ptr<extensions::ExtensionRegistry> registry = | 283 std::unique_ptr<extensions::ExtensionRegistry> registry = |
282 make_scoped_ptr(new extensions::ExtensionRegistry(nullptr)); | 284 base::WrapUnique(new extensions::ExtensionRegistry(nullptr)); |
283 | 285 |
284 EXPECT_EQ("", MediaRouterUI::GetExtensionName(url, registry.get())); | 286 EXPECT_EQ("", MediaRouterUI::GetExtensionName(url, registry.get())); |
285 } | 287 } |
286 | 288 |
287 TEST_F(MediaRouterUITest, GetExtensionNameEmptyWhenNotExtensionURL) { | 289 TEST_F(MediaRouterUITest, GetExtensionNameEmptyWhenNotExtensionURL) { |
288 GURL url = GURL("https://www.google.com"); | 290 GURL url = GURL("https://www.google.com"); |
289 scoped_ptr<extensions::ExtensionRegistry> registry = | 291 std::unique_ptr<extensions::ExtensionRegistry> registry = |
290 make_scoped_ptr(new extensions::ExtensionRegistry(nullptr)); | 292 base::WrapUnique(new extensions::ExtensionRegistry(nullptr)); |
291 | 293 |
292 EXPECT_EQ("", MediaRouterUI::GetExtensionName(url, registry.get())); | 294 EXPECT_EQ("", MediaRouterUI::GetExtensionName(url, registry.get())); |
293 } | 295 } |
294 } // namespace media_router | 296 } // namespace media_router |
OLD | NEW |