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

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

Issue 1744673002: Added support for multiple sink observers per frame. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed url nit and SmallMap TODO Created 4 years, 10 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
« no previous file with comments | « chrome/browser/media/router/presentation_service_delegate_impl.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/media/router/presentation_service_delegate_impl_unittest.cc
diff --git a/chrome/browser/media/router/presentation_service_delegate_impl_unittest.cc b/chrome/browser/media/router/presentation_service_delegate_impl_unittest.cc
index defefaa47dc6175d06546f8f6a8915fcecaebbd3..37901954dbe52fba22845e9e77c781fca45806b0 100644
--- a/chrome/browser/media/router/presentation_service_delegate_impl_unittest.cc
+++ b/chrome/browser/media/router/presentation_service_delegate_impl_unittest.cc
@@ -192,6 +192,41 @@ TEST_F(PresentationServiceDelegateImplTest, AddScreenAvailabilityListener) {
render_process_id, render_frame_id2, source2.id()));
}
+TEST_F(PresentationServiceDelegateImplTest, AddMultipleListenersToFrame) {
+ ON_CALL(router_, RegisterMediaSinksObserver(_)).WillByDefault(Return(true));
+
+ std::string presentation_url1("http://url1.com");
+ std::string presentation_url2("http://url2.com");
+ MediaSource source1 = MediaSourceForPresentationUrl(presentation_url1);
+ MediaSource source2 = MediaSourceForPresentationUrl(presentation_url2);
+ MockScreenAvailabilityListener listener1(presentation_url1);
+ MockScreenAvailabilityListener listener2(presentation_url2);
+ int render_process_id = 10;
+ int render_frame_id = 1;
+
+ EXPECT_CALL(router_, RegisterMediaSinksObserver(_)).Times(2);
+ EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener(
+ render_process_id, render_frame_id, &listener1));
+ EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener(
+ render_process_id, render_frame_id, &listener2));
+ EXPECT_TRUE(delegate_impl_->HasScreenAvailabilityListenerForTest(
+ render_process_id, render_frame_id, source1.id()))
+ << "Mapping not found for " << source1.ToString();
+ EXPECT_TRUE(delegate_impl_->HasScreenAvailabilityListenerForTest(
+ render_process_id, render_frame_id, source2.id()))
+ << "Mapping not found for " << source2.ToString();
+
+ EXPECT_CALL(router_, UnregisterMediaSinksObserver(_)).Times(2);
+ delegate_impl_->RemoveScreenAvailabilityListener(
+ render_process_id, render_frame_id, &listener1);
+ delegate_impl_->RemoveScreenAvailabilityListener(
+ render_process_id, render_frame_id, &listener2);
+ EXPECT_FALSE(delegate_impl_->HasScreenAvailabilityListenerForTest(
+ render_process_id, render_frame_id, source1.id()));
+ EXPECT_FALSE(delegate_impl_->HasScreenAvailabilityListenerForTest(
+ render_process_id, render_frame_id, source2.id()));
+}
+
TEST_F(PresentationServiceDelegateImplTest, AddSameListenerTwice) {
std::string presentation_url1("http://url1.fakeUrl");
MediaSource source1(MediaSourceForPresentationUrl(presentation_url1));
« no previous file with comments | « chrome/browser/media/router/presentation_service_delegate_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698