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

Side by Side Diff: chrome/browser/media/router/presentation_service_delegate_impl_unittest.cc

Issue 1430413003: [Media Router] Connection state change listening redesign part 2. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 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 <vector> 5 #include <vector>
6 6
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "chrome/browser/media/router/media_source.h" 8 #include "chrome/browser/media/router/media_source.h"
9 #include "chrome/browser/media/router/media_source_helper.h" 9 #include "chrome/browser/media/router/media_source_helper.h"
10 #include "chrome/browser/media/router/mock_media_router.h" 10 #include "chrome/browser/media/router/mock_media_router.h"
(...skipping 27 matching lines...) Expand all
38 }; 38 };
39 39
40 class MockDefaultPresentationRequestObserver 40 class MockDefaultPresentationRequestObserver
41 : public PresentationServiceDelegateImpl:: 41 : public PresentationServiceDelegateImpl::
42 DefaultPresentationRequestObserver { 42 DefaultPresentationRequestObserver {
43 public: 43 public:
44 MOCK_METHOD1(OnDefaultPresentationChanged, void(const PresentationRequest&)); 44 MOCK_METHOD1(OnDefaultPresentationChanged, void(const PresentationRequest&));
45 MOCK_METHOD0(OnDefaultPresentationRemoved, void()); 45 MOCK_METHOD0(OnDefaultPresentationRemoved, void());
46 }; 46 };
47 47
48 class MockCreatePresentationConnnectionCallbacks {
49 public:
50 MOCK_METHOD1(OnCreateConnectionSuccess,
51 void(const content::PresentationSessionInfo& connection));
52 MOCK_METHOD1(OnCreateConnectionError,
53 void(const content::PresentationError& error));
54 };
55
48 class PresentationServiceDelegateImplTest 56 class PresentationServiceDelegateImplTest
49 : public ChromeRenderViewHostTestHarness { 57 : public ChromeRenderViewHostTestHarness {
50 public: 58 public:
51 void SetUp() override { 59 void SetUp() override {
52 ChromeRenderViewHostTestHarness::SetUp(); 60 ChromeRenderViewHostTestHarness::SetUp();
53 content::WebContents* wc = web_contents(); 61 content::WebContents* wc = web_contents();
54 ASSERT_TRUE(wc); 62 ASSERT_TRUE(wc);
55 PresentationServiceDelegateImpl::CreateForWebContents(wc); 63 PresentationServiceDelegateImpl::CreateForWebContents(wc);
56 delegate_impl_ = PresentationServiceDelegateImpl::FromWebContents(wc); 64 delegate_impl_ = PresentationServiceDelegateImpl::FromWebContents(wc);
57 delegate_impl_->SetMediaRouterForTest(&router_); 65 delegate_impl_->SetMediaRouterForTest(&router_);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 render_process_id, render_frame_id, source1.id())); 126 render_process_id, render_frame_id, source1.id()));
119 127
120 EXPECT_CALL(router_, UnregisterMediaSinksObserver(_)).Times(1); 128 EXPECT_CALL(router_, UnregisterMediaSinksObserver(_)).Times(1);
121 delegate_impl_->RemoveScreenAvailabilityListener(render_process_id, 129 delegate_impl_->RemoveScreenAvailabilityListener(render_process_id,
122 render_frame_id, &listener1); 130 render_frame_id, &listener1);
123 EXPECT_FALSE(delegate_impl_->HasScreenAvailabilityListenerForTest( 131 EXPECT_FALSE(delegate_impl_->HasScreenAvailabilityListenerForTest(
124 render_process_id, render_frame_id, source1.id())); 132 render_process_id, render_frame_id, source1.id()));
125 } 133 }
126 134
127 // TODO(imcheng): Add a test to set default presentation URL in a different 135 // TODO(imcheng): Add a test to set default presentation URL in a different
128 // RenderFrameHost and verify that it works. 136 // RenderFrameHost and verify that it is ignored.
129 TEST_F(PresentationServiceDelegateImplTest, SetDefaultPresentationUrl) { 137 TEST_F(PresentationServiceDelegateImplTest, SetDefaultPresentationUrl) {
130 EXPECT_FALSE(delegate_impl_->HasDefaultPresentationRequest()); 138 EXPECT_FALSE(delegate_impl_->HasDefaultPresentationRequest());
131 139
132 GURL frame_url("http://www.google.com"); 140 GURL frame_url("http://www.google.com");
133 content::WebContentsTester::For(web_contents())->NavigateAndCommit(frame_url); 141 content::WebContentsTester::For(web_contents())->NavigateAndCommit(frame_url);
134 content::RenderFrameHost* main_frame = web_contents()->GetMainFrame(); 142 content::RenderFrameHost* main_frame = web_contents()->GetMainFrame();
135 ASSERT_TRUE(main_frame); 143 ASSERT_TRUE(main_frame);
136 int render_process_id = main_frame->GetProcess()->GetID(); 144 int render_process_id = main_frame->GetProcess()->GetID();
137 int routing_id = main_frame->GetRoutingID(); 145 int routing_id = main_frame->GetRoutingID();
138 146
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 EXPECT_TRUE(request2.Equals(observed_request2)); 259 EXPECT_TRUE(request2.Equals(observed_request2));
252 260
253 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer)); 261 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer));
254 262
255 // Remove default presentation URL. 263 // Remove default presentation URL.
256 EXPECT_CALL(observer, OnDefaultPresentationRemoved()).Times(1); 264 EXPECT_CALL(observer, OnDefaultPresentationRemoved()).Times(1);
257 delegate_impl_->SetDefaultPresentationUrl(render_process_id, routing_id, "", 265 delegate_impl_->SetDefaultPresentationUrl(render_process_id, routing_id, "",
258 callback); 266 callback);
259 } 267 }
260 268
269 TEST_F(PresentationServiceDelegateImplTest, ListenForConnnectionStateChange) {
270 GURL frame_url("http://www.google.com");
271 content::WebContentsTester::For(web_contents())->NavigateAndCommit(frame_url);
272 content::RenderFrameHost* main_frame = web_contents()->GetMainFrame();
273 ASSERT_TRUE(main_frame);
274 int render_process_id = main_frame->GetProcess()->GetID();
275 int routing_id = main_frame->GetRoutingID();
276
277 // Set up a PresentationConnection so we can listen to it.
278 std::vector<MediaRouteResponseCallback> route_response_callbacks;
279 EXPECT_CALL(router_, JoinRoute(_, _, _, _, _))
280 .WillOnce(SaveArg<4>(&route_response_callbacks));
281
282 const std::string kPresentationUrl("http://url1.fakeUrl");
283 const std::string kPresentationId("pid");
284 MockCreatePresentationConnnectionCallbacks mock_create_connection_callbacks;
285 delegate_impl_->JoinSession(
286 render_process_id, routing_id, kPresentationUrl, kPresentationId,
287 base::Bind(&MockCreatePresentationConnnectionCallbacks::
288 OnCreateConnectionSuccess,
289 base::Unretained(&mock_create_connection_callbacks)),
290 base::Bind(
291 &MockCreatePresentationConnnectionCallbacks::OnCreateConnectionError,
292 base::Unretained(&mock_create_connection_callbacks)));
293
294 EXPECT_CALL(mock_create_connection_callbacks, OnCreateConnectionSuccess(_))
295 .Times(1);
296 MediaRoute route("routeId", MediaSourceForPresentationUrl(kPresentationUrl),
297 "mediaSinkId", "description", true, "", true);
298 for (const auto& route_response_callback : route_response_callbacks)
299 route_response_callback.Run(&route, kPresentationId, "");
300
301 MockPresentationConnectionStateChangedCallback mock_callback;
302 content::PresentationConnectionStateChangedCallback callback =
303 base::Bind(&MockPresentationConnectionStateChangedCallback::Run,
304 base::Unretained(&mock_callback));
305 content::PresentationSessionInfo connection(kPresentationUrl,
306 kPresentationId);
307 EXPECT_CALL(router_, OnAddPresentationConnectionStateChangedCallbackInvoked(
308 Equals(callback)));
309 delegate_impl_->ListenForConnectionStateChange(render_process_id, routing_id,
310 connection, callback);
311 }
312
261 TEST_F(PresentationServiceDelegateImplTest, Reset) { 313 TEST_F(PresentationServiceDelegateImplTest, Reset) {
262 ON_CALL(router_, RegisterMediaSinksObserver(_)).WillByDefault(Return(true)); 314 ON_CALL(router_, RegisterMediaSinksObserver(_)).WillByDefault(Return(true));
263 315
264 std::string presentation_url1("http://url1.fakeUrl"); 316 std::string presentation_url1("http://url1.fakeUrl");
265 MediaSource source = MediaSourceForPresentationUrl(presentation_url1); 317 MediaSource source = MediaSourceForPresentationUrl(presentation_url1);
266 MockScreenAvailabilityListener listener1(presentation_url1); 318 MockScreenAvailabilityListener listener1(presentation_url1);
267 int render_process_id = 1; 319 int render_process_id = 1;
268 int render_frame_id = 0; 320 int render_frame_id = 0;
269 321
270 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( 322 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener(
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 MockScreenAvailabilityListener listener(presentation_url); 354 MockScreenAvailabilityListener listener(presentation_url);
303 const int render_process_id = 10; 355 const int render_process_id = 10;
304 const int render_frame_id = 1; 356 const int render_frame_id = 1;
305 357
306 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)).Times(1); 358 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)).Times(1);
307 EXPECT_FALSE(delegate_impl_->AddScreenAvailabilityListener( 359 EXPECT_FALSE(delegate_impl_->AddScreenAvailabilityListener(
308 render_process_id, render_frame_id, &listener)); 360 render_process_id, render_frame_id, &listener));
309 } 361 }
310 362
311 } // namespace media_router 363 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698