| 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 <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 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 content::WebContents* incognito_web_contents_; | 156 content::WebContents* incognito_web_contents_; |
| 157 }; | 157 }; |
| 158 | 158 |
| 159 TEST_F(PresentationServiceDelegateImplTest, AddScreenAvailabilityListener) { | 159 TEST_F(PresentationServiceDelegateImplTest, AddScreenAvailabilityListener) { |
| 160 std::string presentation_url1("http://url1.fakeUrl"); | 160 std::string presentation_url1("http://url1.fakeUrl"); |
| 161 std::string presentation_url2("http://url2.fakeUrl"); | 161 std::string presentation_url2("http://url2.fakeUrl"); |
| 162 MediaSource source1 = MediaSourceForPresentationUrl(presentation_url1); | 162 MediaSource source1 = MediaSourceForPresentationUrl(presentation_url1); |
| 163 MediaSource source2 = MediaSourceForPresentationUrl(presentation_url2); | 163 MediaSource source2 = MediaSourceForPresentationUrl(presentation_url2); |
| 164 MockScreenAvailabilityListener listener1(presentation_url1); | 164 MockScreenAvailabilityListener listener1(presentation_url1); |
| 165 MockScreenAvailabilityListener listener2(presentation_url2); | 165 MockScreenAvailabilityListener listener2(presentation_url2); |
| 166 int render_process_id = 10; | 166 content::RenderFrameHost* main_frame = GetWebContents()->GetMainFrame(); |
| 167 int render_frame_id1 = 1; | 167 ASSERT_TRUE(main_frame); |
| 168 int render_process_id = main_frame->GetProcess()->GetID(); |
| 169 int render_frame_id1 = main_frame->GetRoutingID(); |
| 170 |
| 171 // Note that |render_frame_id2| does not correspond to a real frame. As a |
| 172 // result, the observer added with have an empty GURL as origin. |
| 168 int render_frame_id2 = 2; | 173 int render_frame_id2 = 2; |
| 169 | 174 |
| 170 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)) | 175 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)) |
| 171 .Times(2) | 176 .Times(2) |
| 172 .WillRepeatedly(Return(true)); | 177 .WillRepeatedly(Return(true)); |
| 173 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( | 178 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( |
| 174 render_process_id, render_frame_id1, &listener1)); | 179 render_process_id, render_frame_id1, &listener1)); |
| 175 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( | 180 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( |
| 176 render_process_id, render_frame_id2, &listener2)); | 181 render_process_id, render_frame_id2, &listener2)); |
| 177 EXPECT_TRUE(delegate_impl_->HasScreenAvailabilityListenerForTest( | 182 EXPECT_TRUE(delegate_impl_->HasScreenAvailabilityListenerForTest( |
| (...skipping 16 matching lines...) Expand all Loading... |
| 194 | 199 |
| 195 TEST_F(PresentationServiceDelegateImplTest, AddMultipleListenersToFrame) { | 200 TEST_F(PresentationServiceDelegateImplTest, AddMultipleListenersToFrame) { |
| 196 ON_CALL(router_, RegisterMediaSinksObserver(_)).WillByDefault(Return(true)); | 201 ON_CALL(router_, RegisterMediaSinksObserver(_)).WillByDefault(Return(true)); |
| 197 | 202 |
| 198 std::string presentation_url1("http://url1.com"); | 203 std::string presentation_url1("http://url1.com"); |
| 199 std::string presentation_url2("http://url2.com"); | 204 std::string presentation_url2("http://url2.com"); |
| 200 MediaSource source1 = MediaSourceForPresentationUrl(presentation_url1); | 205 MediaSource source1 = MediaSourceForPresentationUrl(presentation_url1); |
| 201 MediaSource source2 = MediaSourceForPresentationUrl(presentation_url2); | 206 MediaSource source2 = MediaSourceForPresentationUrl(presentation_url2); |
| 202 MockScreenAvailabilityListener listener1(presentation_url1); | 207 MockScreenAvailabilityListener listener1(presentation_url1); |
| 203 MockScreenAvailabilityListener listener2(presentation_url2); | 208 MockScreenAvailabilityListener listener2(presentation_url2); |
| 204 int render_process_id = 10; | 209 content::RenderFrameHost* main_frame = GetWebContents()->GetMainFrame(); |
| 205 int render_frame_id = 1; | 210 ASSERT_TRUE(main_frame); |
| 211 int render_process_id = main_frame->GetProcess()->GetID(); |
| 212 int render_frame_id = main_frame->GetRoutingID(); |
| 206 | 213 |
| 207 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)).Times(2); | 214 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)).Times(2); |
| 208 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( | 215 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( |
| 209 render_process_id, render_frame_id, &listener1)); | 216 render_process_id, render_frame_id, &listener1)); |
| 210 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( | 217 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( |
| 211 render_process_id, render_frame_id, &listener2)); | 218 render_process_id, render_frame_id, &listener2)); |
| 212 EXPECT_TRUE(delegate_impl_->HasScreenAvailabilityListenerForTest( | 219 EXPECT_TRUE(delegate_impl_->HasScreenAvailabilityListenerForTest( |
| 213 render_process_id, render_frame_id, source1.id())) | 220 render_process_id, render_frame_id, source1.id())) |
| 214 << "Mapping not found for " << source1.ToString(); | 221 << "Mapping not found for " << source1.ToString(); |
| 215 EXPECT_TRUE(delegate_impl_->HasScreenAvailabilityListenerForTest( | 222 EXPECT_TRUE(delegate_impl_->HasScreenAvailabilityListenerForTest( |
| 216 render_process_id, render_frame_id, source2.id())) | 223 render_process_id, render_frame_id, source2.id())) |
| 217 << "Mapping not found for " << source2.ToString(); | 224 << "Mapping not found for " << source2.ToString(); |
| 218 | 225 |
| 219 EXPECT_CALL(router_, UnregisterMediaSinksObserver(_)).Times(2); | 226 EXPECT_CALL(router_, UnregisterMediaSinksObserver(_)).Times(2); |
| 220 delegate_impl_->RemoveScreenAvailabilityListener( | 227 delegate_impl_->RemoveScreenAvailabilityListener( |
| 221 render_process_id, render_frame_id, &listener1); | 228 render_process_id, render_frame_id, &listener1); |
| 222 delegate_impl_->RemoveScreenAvailabilityListener( | 229 delegate_impl_->RemoveScreenAvailabilityListener( |
| 223 render_process_id, render_frame_id, &listener2); | 230 render_process_id, render_frame_id, &listener2); |
| 224 EXPECT_FALSE(delegate_impl_->HasScreenAvailabilityListenerForTest( | 231 EXPECT_FALSE(delegate_impl_->HasScreenAvailabilityListenerForTest( |
| 225 render_process_id, render_frame_id, source1.id())); | 232 render_process_id, render_frame_id, source1.id())); |
| 226 EXPECT_FALSE(delegate_impl_->HasScreenAvailabilityListenerForTest( | 233 EXPECT_FALSE(delegate_impl_->HasScreenAvailabilityListenerForTest( |
| 227 render_process_id, render_frame_id, source2.id())); | 234 render_process_id, render_frame_id, source2.id())); |
| 228 } | 235 } |
| 229 | 236 |
| 230 TEST_F(PresentationServiceDelegateImplTest, AddSameListenerTwice) { | 237 TEST_F(PresentationServiceDelegateImplTest, AddSameListenerTwice) { |
| 231 std::string presentation_url1("http://url1.fakeUrl"); | 238 std::string presentation_url1("http://url1.fakeUrl"); |
| 232 MediaSource source1(MediaSourceForPresentationUrl(presentation_url1)); | 239 MediaSource source1(MediaSourceForPresentationUrl(presentation_url1)); |
| 233 MockScreenAvailabilityListener listener1(presentation_url1); | 240 MockScreenAvailabilityListener listener1(presentation_url1); |
| 234 int render_process_id = 1; | 241 content::RenderFrameHost* main_frame = GetWebContents()->GetMainFrame(); |
| 235 int render_frame_id = 0; | 242 ASSERT_TRUE(main_frame); |
| 243 int render_process_id = main_frame->GetProcess()->GetID(); |
| 244 int render_frame_id = main_frame->GetRoutingID(); |
| 236 | 245 |
| 237 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)).WillOnce(Return(true)); | 246 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)).WillOnce(Return(true)); |
| 238 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( | 247 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( |
| 239 render_process_id, render_frame_id, &listener1)); | 248 render_process_id, render_frame_id, &listener1)); |
| 240 EXPECT_FALSE(delegate_impl_->AddScreenAvailabilityListener( | 249 EXPECT_FALSE(delegate_impl_->AddScreenAvailabilityListener( |
| 241 render_process_id, render_frame_id, &listener1)); | 250 render_process_id, render_frame_id, &listener1)); |
| 242 EXPECT_TRUE(delegate_impl_->HasScreenAvailabilityListenerForTest( | 251 EXPECT_TRUE(delegate_impl_->HasScreenAvailabilityListenerForTest( |
| 243 render_process_id, render_frame_id, source1.id())); | 252 render_process_id, render_frame_id, source1.id())); |
| 244 | 253 |
| 245 EXPECT_CALL(router_, UnregisterMediaSinksObserver(_)).Times(1); | 254 EXPECT_CALL(router_, UnregisterMediaSinksObserver(_)).Times(1); |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 403 connection, callback); | 412 connection, callback); |
| 404 } | 413 } |
| 405 | 414 |
| 406 TEST_F(PresentationServiceDelegateImplTest, Reset) { | 415 TEST_F(PresentationServiceDelegateImplTest, Reset) { |
| 407 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)) | 416 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)) |
| 408 .WillRepeatedly(Return(true)); | 417 .WillRepeatedly(Return(true)); |
| 409 | 418 |
| 410 std::string presentation_url1("http://url1.fakeUrl"); | 419 std::string presentation_url1("http://url1.fakeUrl"); |
| 411 MediaSource source = MediaSourceForPresentationUrl(presentation_url1); | 420 MediaSource source = MediaSourceForPresentationUrl(presentation_url1); |
| 412 MockScreenAvailabilityListener listener1(presentation_url1); | 421 MockScreenAvailabilityListener listener1(presentation_url1); |
| 413 int render_process_id = 1; | 422 |
| 414 int render_frame_id = 0; | 423 content::RenderFrameHost* main_frame = GetWebContents()->GetMainFrame(); |
| 424 ASSERT_TRUE(main_frame); |
| 425 int render_process_id = main_frame->GetProcess()->GetID(); |
| 426 int render_frame_id = main_frame->GetRoutingID(); |
| 415 | 427 |
| 416 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( | 428 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( |
| 417 render_process_id, render_frame_id, &listener1)); | 429 render_process_id, render_frame_id, &listener1)); |
| 418 EXPECT_TRUE(delegate_impl_->HasScreenAvailabilityListenerForTest( | 430 EXPECT_TRUE(delegate_impl_->HasScreenAvailabilityListenerForTest( |
| 419 render_process_id, render_frame_id, source.id())); | 431 render_process_id, render_frame_id, source.id())); |
| 420 EXPECT_CALL(router_, UnregisterMediaSinksObserver(_)).Times(1); | 432 EXPECT_CALL(router_, UnregisterMediaSinksObserver(_)).Times(1); |
| 421 delegate_impl_->Reset(render_process_id, render_frame_id); | 433 delegate_impl_->Reset(render_process_id, render_frame_id); |
| 422 EXPECT_FALSE(delegate_impl_->HasScreenAvailabilityListenerForTest( | 434 EXPECT_FALSE(delegate_impl_->HasScreenAvailabilityListenerForTest( |
| 423 render_process_id, render_frame_id, source.id())); | 435 render_process_id, render_frame_id, source.id())); |
| 424 } | 436 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 437 // Removes |delegate_observer2|. | 449 // Removes |delegate_observer2|. |
| 438 manager->RemoveObserver(345, 456); | 450 manager->RemoveObserver(345, 456); |
| 439 | 451 |
| 440 EXPECT_CALL(delegate_observer1, OnDelegateDestroyed()).Times(1); | 452 EXPECT_CALL(delegate_observer1, OnDelegateDestroyed()).Times(1); |
| 441 manager.reset(); | 453 manager.reset(); |
| 442 } | 454 } |
| 443 | 455 |
| 444 TEST_F(PresentationServiceDelegateImplTest, SinksObserverCantRegister) { | 456 TEST_F(PresentationServiceDelegateImplTest, SinksObserverCantRegister) { |
| 445 const std::string presentation_url("http://url1.fakeUrl"); | 457 const std::string presentation_url("http://url1.fakeUrl"); |
| 446 MockScreenAvailabilityListener listener(presentation_url); | 458 MockScreenAvailabilityListener listener(presentation_url); |
| 447 const int render_process_id = 10; | 459 content::RenderFrameHost* main_frame = GetWebContents()->GetMainFrame(); |
| 448 const int render_frame_id = 1; | 460 ASSERT_TRUE(main_frame); |
| 461 int render_process_id = main_frame->GetProcess()->GetID(); |
| 462 int render_frame_id = main_frame->GetRoutingID(); |
| 449 | 463 |
| 450 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)).WillOnce(Return(false)); | 464 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)).WillOnce(Return(false)); |
| 451 EXPECT_CALL(listener, OnScreenAvailabilityNotSupported()); | 465 EXPECT_CALL(listener, OnScreenAvailabilityNotSupported()); |
| 452 EXPECT_FALSE(delegate_impl_->AddScreenAvailabilityListener( | 466 EXPECT_FALSE(delegate_impl_->AddScreenAvailabilityListener( |
| 453 render_process_id, render_frame_id, &listener)); | 467 render_process_id, render_frame_id, &listener)); |
| 454 } | 468 } |
| 455 | 469 |
| 456 } // namespace media_router | 470 } // namespace media_router |
| OLD | NEW |