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" |
11 #include "chrome/browser/media/router/mock_screen_availability_listener.h" | 11 #include "chrome/browser/media/router/mock_screen_availability_listener.h" |
12 #include "chrome/browser/media/router/presentation_service_delegate_impl.h" | 12 #include "chrome/browser/media/router/presentation_service_delegate_impl.h" |
13 #include "chrome/browser/media/router/test_helper.h" | 13 #include "chrome/browser/media/router/test_helper.h" |
14 #include "chrome/grit/generated_resources.h" | 14 #include "chrome/grit/generated_resources.h" |
15 #include "chrome/test/base/chrome_render_view_host_test_harness.h" | 15 #include "chrome/test/base/chrome_render_view_host_test_harness.h" |
16 #include "content/public/browser/presentation_screen_availability_listener.h" | 16 #include "content/public/browser/presentation_screen_availability_listener.h" |
17 #include "content/public/browser/presentation_session.h" | 17 #include "content/public/browser/presentation_session.h" |
18 #include "content/public/browser/render_process_host.h" | 18 #include "content/public/browser/render_process_host.h" |
19 #include "content/public/browser/web_contents.h" | 19 #include "content/public/browser/web_contents.h" |
20 #include "content/public/test/web_contents_tester.h" | 20 #include "content/public/test/web_contents_tester.h" |
21 #include "testing/gmock/include/gmock/gmock.h" | 21 #include "testing/gmock/include/gmock/gmock.h" |
22 #include "ui/base/l10n/l10n_util.h" | 22 #include "ui/base/l10n/l10n_util.h" |
23 | 23 |
24 using ::testing::_; | 24 using ::testing::_; |
25 using ::testing::Mock; | 25 using ::testing::Mock; |
26 using ::testing::Return; | 26 using ::testing::Return; |
| 27 using ::testing::SaveArg; |
27 using ::testing::StrictMock; | 28 using ::testing::StrictMock; |
28 | 29 |
29 namespace media_router { | 30 namespace media_router { |
30 | 31 |
31 class MockDelegateObserver | 32 class MockDelegateObserver |
32 : public content::PresentationServiceDelegate::Observer { | 33 : public content::PresentationServiceDelegate::Observer { |
33 public: | 34 public: |
34 MOCK_METHOD0(OnDelegateDestroyed, void()); | 35 MOCK_METHOD0(OnDelegateDestroyed, void()); |
35 MOCK_METHOD1(OnDefaultPresentationStarted, | 36 MOCK_METHOD1(OnDefaultPresentationStarted, |
36 void(const content::PresentationSessionInfo&)); | 37 void(const content::PresentationSessionInfo&)); |
37 }; | 38 }; |
38 | 39 |
39 class MockDefaultMediaSourceObserver | 40 class MockDefaultPresentationRequestObserver |
40 : public PresentationServiceDelegateImpl::DefaultMediaSourceObserver { | 41 : public PresentationServiceDelegateImpl:: |
| 42 DefaultPresentationRequestObserver { |
41 public: | 43 public: |
42 MOCK_METHOD2(OnDefaultMediaSourceChanged, | 44 MOCK_METHOD1(OnDefaultPresentationChanged, void(const PresentationRequest&)); |
43 void(const MediaSource&, const GURL&)); | 45 MOCK_METHOD0(OnDefaultPresentationRemoved, void()); |
44 }; | 46 }; |
45 | 47 |
46 class PresentationServiceDelegateImplTest | 48 class PresentationServiceDelegateImplTest |
47 : public ChromeRenderViewHostTestHarness { | 49 : public ChromeRenderViewHostTestHarness { |
48 public: | 50 public: |
49 void SetUp() override { | 51 void SetUp() override { |
50 ChromeRenderViewHostTestHarness::SetUp(); | 52 ChromeRenderViewHostTestHarness::SetUp(); |
51 content::WebContents* wc = web_contents(); | 53 content::WebContents* wc = web_contents(); |
52 ASSERT_TRUE(wc); | 54 ASSERT_TRUE(wc); |
53 PresentationServiceDelegateImpl::CreateForWebContents(wc); | 55 PresentationServiceDelegateImpl::CreateForWebContents(wc); |
54 delegate_impl_ = PresentationServiceDelegateImpl::FromWebContents(wc); | 56 delegate_impl_ = PresentationServiceDelegateImpl::FromWebContents(wc); |
55 delegate_impl_->SetMediaRouterForTest(&router_); | 57 delegate_impl_->SetMediaRouterForTest(&router_); |
56 } | 58 } |
57 | 59 |
| 60 MOCK_METHOD1(OnDefaultPresentationStarted, |
| 61 void(const content::PresentationSessionInfo& session_info)); |
| 62 |
58 PresentationServiceDelegateImpl* delegate_impl_; | 63 PresentationServiceDelegateImpl* delegate_impl_; |
59 MockMediaRouter router_; | 64 MockMediaRouter router_; |
60 }; | 65 }; |
61 | 66 |
62 TEST_F(PresentationServiceDelegateImplTest, AddScreenAvailabilityListener) { | 67 TEST_F(PresentationServiceDelegateImplTest, AddScreenAvailabilityListener) { |
63 ON_CALL(router_, RegisterMediaSinksObserver(_)).WillByDefault(Return(true)); | 68 ON_CALL(router_, RegisterMediaSinksObserver(_)).WillByDefault(Return(true)); |
64 | 69 |
65 std::string presentation_url1("http://url1"); | 70 std::string presentation_url1("http://url1.fakeUrl"); |
66 std::string presentation_url2("http://url2"); | 71 std::string presentation_url2("http://url2.fakeUrl"); |
67 MediaSource source1 = MediaSourceForPresentationUrl(presentation_url1); | 72 MediaSource source1 = MediaSourceForPresentationUrl(presentation_url1); |
68 MediaSource source2 = MediaSourceForPresentationUrl(presentation_url2); | 73 MediaSource source2 = MediaSourceForPresentationUrl(presentation_url2); |
69 MockScreenAvailabilityListener listener1(presentation_url1); | 74 MockScreenAvailabilityListener listener1(presentation_url1); |
70 MockScreenAvailabilityListener listener2(presentation_url2); | 75 MockScreenAvailabilityListener listener2(presentation_url2); |
71 int render_process_id = 10; | 76 int render_process_id = 10; |
72 int render_frame_id1 = 1; | 77 int render_frame_id1 = 1; |
73 int render_frame_id2 = 2; | 78 int render_frame_id2 = 2; |
74 | 79 |
75 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)).Times(2); | 80 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)).Times(2); |
76 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( | 81 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( |
(...skipping 14 matching lines...) Expand all Loading... |
91 render_process_id, render_frame_id2, &listener2); | 96 render_process_id, render_frame_id2, &listener2); |
92 EXPECT_FALSE(delegate_impl_->HasScreenAvailabilityListenerForTest( | 97 EXPECT_FALSE(delegate_impl_->HasScreenAvailabilityListenerForTest( |
93 render_process_id, render_frame_id1, source1.id())); | 98 render_process_id, render_frame_id1, source1.id())); |
94 EXPECT_FALSE(delegate_impl_->HasScreenAvailabilityListenerForTest( | 99 EXPECT_FALSE(delegate_impl_->HasScreenAvailabilityListenerForTest( |
95 render_process_id, render_frame_id2, source2.id())); | 100 render_process_id, render_frame_id2, source2.id())); |
96 } | 101 } |
97 | 102 |
98 TEST_F(PresentationServiceDelegateImplTest, AddSameListenerTwice) { | 103 TEST_F(PresentationServiceDelegateImplTest, AddSameListenerTwice) { |
99 ON_CALL(router_, RegisterMediaSinksObserver(_)).WillByDefault(Return(true)); | 104 ON_CALL(router_, RegisterMediaSinksObserver(_)).WillByDefault(Return(true)); |
100 | 105 |
101 std::string presentation_url1("http://url1"); | 106 std::string presentation_url1("http://url1.fakeUrl"); |
102 MediaSource source1(MediaSourceForPresentationUrl(presentation_url1)); | 107 MediaSource source1(MediaSourceForPresentationUrl(presentation_url1)); |
103 MockScreenAvailabilityListener listener1(presentation_url1); | 108 MockScreenAvailabilityListener listener1(presentation_url1); |
104 int render_process_id = 1; | 109 int render_process_id = 1; |
105 int render_frame_id = 0; | 110 int render_frame_id = 0; |
106 | 111 |
107 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)).Times(1); | 112 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)).Times(1); |
108 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( | 113 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( |
109 render_process_id, render_frame_id, &listener1)); | 114 render_process_id, render_frame_id, &listener1)); |
110 EXPECT_FALSE(delegate_impl_->AddScreenAvailabilityListener( | 115 EXPECT_FALSE(delegate_impl_->AddScreenAvailabilityListener( |
111 render_process_id, render_frame_id, &listener1)); | 116 render_process_id, render_frame_id, &listener1)); |
112 EXPECT_TRUE(delegate_impl_->HasScreenAvailabilityListenerForTest( | 117 EXPECT_TRUE(delegate_impl_->HasScreenAvailabilityListenerForTest( |
113 render_process_id, render_frame_id, source1.id())); | 118 render_process_id, render_frame_id, source1.id())); |
114 | 119 |
115 EXPECT_CALL(router_, UnregisterMediaSinksObserver(_)).Times(1); | 120 EXPECT_CALL(router_, UnregisterMediaSinksObserver(_)).Times(1); |
116 delegate_impl_->RemoveScreenAvailabilityListener(render_process_id, | 121 delegate_impl_->RemoveScreenAvailabilityListener(render_process_id, |
117 render_frame_id, &listener1); | 122 render_frame_id, &listener1); |
118 EXPECT_FALSE(delegate_impl_->HasScreenAvailabilityListenerForTest( | 123 EXPECT_FALSE(delegate_impl_->HasScreenAvailabilityListenerForTest( |
119 render_process_id, render_frame_id, source1.id())); | 124 render_process_id, render_frame_id, source1.id())); |
120 } | 125 } |
121 | 126 |
| 127 // TODO(imcheng): Add a test to set default presentation URL in a different |
| 128 // RenderFrameHost and verify that it works. |
122 TEST_F(PresentationServiceDelegateImplTest, SetDefaultPresentationUrl) { | 129 TEST_F(PresentationServiceDelegateImplTest, SetDefaultPresentationUrl) { |
123 content::WebContentsTester::For(web_contents()) | 130 EXPECT_FALSE(delegate_impl_->HasDefaultPresentationRequest()); |
124 ->NavigateAndCommit(GURL("http://www.google.com")); | 131 |
| 132 GURL frame_url("http://www.google.com"); |
| 133 content::WebContentsTester::For(web_contents())->NavigateAndCommit(frame_url); |
125 content::RenderFrameHost* main_frame = web_contents()->GetMainFrame(); | 134 content::RenderFrameHost* main_frame = web_contents()->GetMainFrame(); |
126 ASSERT_TRUE(main_frame); | 135 ASSERT_TRUE(main_frame); |
127 int render_process_id = main_frame->GetProcess()->GetID(); | 136 int render_process_id = main_frame->GetProcess()->GetID(); |
128 int routing_id = main_frame->GetRoutingID(); | 137 int routing_id = main_frame->GetRoutingID(); |
129 | 138 |
130 std::string presentation_url1("http://foo"); | 139 auto callback = base::Bind( |
| 140 &PresentationServiceDelegateImplTest::OnDefaultPresentationStarted, |
| 141 base::Unretained(this)); |
| 142 std::string presentation_url1("http://foo.fakeUrl"); |
131 delegate_impl_->SetDefaultPresentationUrl(render_process_id, routing_id, | 143 delegate_impl_->SetDefaultPresentationUrl(render_process_id, routing_id, |
132 presentation_url1); | 144 presentation_url1, callback); |
133 EXPECT_TRUE(delegate_impl_->default_source().Equals( | 145 ASSERT_TRUE(delegate_impl_->HasDefaultPresentationRequest()); |
134 MediaSourceForPresentationUrl(presentation_url1))); | 146 PresentationRequest request1 = |
135 | 147 delegate_impl_->GetDefaultPresentationRequest(); |
136 // Remove default presentation URL. | 148 EXPECT_EQ(presentation_url1, request1.presentation_url()); |
137 delegate_impl_->SetDefaultPresentationUrl(render_process_id, routing_id, ""); | 149 EXPECT_EQ(RenderFrameHostId(render_process_id, routing_id), |
138 EXPECT_TRUE(delegate_impl_->default_source().Empty()); | 150 request1.render_frame_host_id()); |
| 151 EXPECT_EQ(frame_url, request1.frame_url()); |
139 | 152 |
140 // Set to a new default presentation URL | 153 // Set to a new default presentation URL |
141 std::string presentation_url2("https://youtube.com"); | 154 std::string presentation_url2("https://youtube.com"); |
142 delegate_impl_->SetDefaultPresentationUrl(render_process_id, routing_id, | 155 delegate_impl_->SetDefaultPresentationUrl(render_process_id, routing_id, |
143 presentation_url2); | 156 presentation_url2, callback); |
144 EXPECT_TRUE(delegate_impl_->default_source().Equals( | 157 ASSERT_TRUE(delegate_impl_->HasDefaultPresentationRequest()); |
145 MediaSourceForPresentationUrl(presentation_url2))); | 158 PresentationRequest request2 = |
| 159 delegate_impl_->GetDefaultPresentationRequest(); |
| 160 EXPECT_EQ(presentation_url2, request2.presentation_url()); |
| 161 EXPECT_EQ(RenderFrameHostId(render_process_id, routing_id), |
| 162 request2.render_frame_host_id()); |
| 163 EXPECT_EQ(frame_url, request2.frame_url()); |
| 164 |
| 165 // Remove default presentation URL. |
| 166 delegate_impl_->SetDefaultPresentationUrl(render_process_id, routing_id, "", |
| 167 callback); |
| 168 EXPECT_FALSE(delegate_impl_->HasDefaultPresentationRequest()); |
146 } | 169 } |
147 | 170 |
148 TEST_F(PresentationServiceDelegateImplTest, DefaultMediaSourceObserver) { | 171 TEST_F(PresentationServiceDelegateImplTest, DefaultPresentationUrlCallback) { |
149 content::WebContentsTester::For(web_contents()) | |
150 ->NavigateAndCommit(GURL("http://www.google.com")); | |
151 content::RenderFrameHost* main_frame = web_contents()->GetMainFrame(); | 172 content::RenderFrameHost* main_frame = web_contents()->GetMainFrame(); |
152 ASSERT_TRUE(main_frame); | 173 ASSERT_TRUE(main_frame); |
153 int render_process_id = main_frame->GetProcess()->GetID(); | 174 int render_process_id = main_frame->GetProcess()->GetID(); |
154 int routing_id = main_frame->GetRoutingID(); | 175 int routing_id = main_frame->GetRoutingID(); |
155 StrictMock<MockDefaultMediaSourceObserver> observer1; | |
156 StrictMock<MockDefaultMediaSourceObserver> observer2; | |
157 delegate_impl_->AddDefaultMediaSourceObserver(&observer1); | |
158 delegate_impl_->AddDefaultMediaSourceObserver(&observer2); | |
159 std::string url1("http://foo"); | |
160 EXPECT_CALL(observer1, OnDefaultMediaSourceChanged( | |
161 Equals(MediaSourceForPresentationUrl(url1)), | |
162 GURL("http://www.google.com"))).Times(1); | |
163 EXPECT_CALL(observer2, OnDefaultMediaSourceChanged( | |
164 Equals(MediaSourceForPresentationUrl(url1)), | |
165 GURL("http://www.google.com"))).Times(1); | |
166 delegate_impl_->SetDefaultPresentationUrl(render_process_id, | |
167 routing_id, url1); | |
168 | 176 |
169 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer1)); | 177 auto callback = base::Bind( |
170 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer2)); | 178 &PresentationServiceDelegateImplTest::OnDefaultPresentationStarted, |
| 179 base::Unretained(this)); |
| 180 std::string presentation_url1("http://foo.fakeUrl"); |
| 181 delegate_impl_->SetDefaultPresentationUrl(render_process_id, routing_id, |
| 182 presentation_url1, callback); |
171 | 183 |
172 delegate_impl_->RemoveDefaultMediaSourceObserver(&observer2); | 184 ASSERT_TRUE(delegate_impl_->HasDefaultPresentationRequest()); |
| 185 PresentationRequest request = delegate_impl_->GetDefaultPresentationRequest(); |
| 186 |
| 187 // Should not trigger callback since route response is error. |
| 188 delegate_impl_->OnRouteResponse(request, nullptr, "", "Error"); |
| 189 EXPECT_TRUE(Mock::VerifyAndClearExpectations(this)); |
| 190 |
| 191 // Should not trigger callback since request doesn't match. |
| 192 std::string presentation_url2("http://bar.fakeUrl"); |
| 193 PresentationRequest different_request(RenderFrameHostId(100, 200), |
| 194 presentation_url2, |
| 195 GURL("http://anotherFrameUrl.fakeUrl")); |
| 196 MediaRoute different_route("differentRouteId", |
| 197 MediaSourceForPresentationUrl(presentation_url2), |
| 198 "mediaSinkId", "", true, "", true); |
| 199 delegate_impl_->OnRouteResponse(different_request, &different_route, |
| 200 "differentPresentationId", ""); |
| 201 EXPECT_TRUE(Mock::VerifyAndClearExpectations(this)); |
| 202 |
| 203 // Should trigger callback since request matches. |
| 204 MediaRoute route("routeId", MediaSourceForPresentationUrl(presentation_url1), |
| 205 "mediaSinkId", "", true, "", true); |
| 206 EXPECT_CALL(*this, OnDefaultPresentationStarted(_)).Times(1); |
| 207 delegate_impl_->OnRouteResponse(request, &route, "presentationId", ""); |
| 208 } |
| 209 |
| 210 TEST_F(PresentationServiceDelegateImplTest, |
| 211 DefaultPresentationRequestObserver) { |
| 212 auto callback = base::Bind( |
| 213 &PresentationServiceDelegateImplTest::OnDefaultPresentationStarted, |
| 214 base::Unretained(this)); |
| 215 |
| 216 StrictMock<MockDefaultPresentationRequestObserver> observer; |
| 217 delegate_impl_->AddDefaultPresentationRequestObserver(&observer); |
| 218 |
| 219 GURL frame_url("http://www.google.com"); |
| 220 content::WebContentsTester::For(web_contents())->NavigateAndCommit(frame_url); |
| 221 content::RenderFrameHost* main_frame = web_contents()->GetMainFrame(); |
| 222 ASSERT_TRUE(main_frame); |
| 223 int render_process_id = main_frame->GetProcess()->GetID(); |
| 224 int routing_id = main_frame->GetRoutingID(); |
| 225 |
| 226 std::string url1("http://foo.fakeUrl"); |
| 227 PresentationRequest observed_request1( |
| 228 RenderFrameHostId(render_process_id, routing_id), url1, frame_url); |
| 229 EXPECT_CALL(observer, OnDefaultPresentationChanged(Equals(observed_request1))) |
| 230 .Times(1); |
| 231 delegate_impl_->SetDefaultPresentationUrl(render_process_id, routing_id, url1, |
| 232 callback); |
| 233 |
| 234 ASSERT_TRUE(delegate_impl_->HasDefaultPresentationRequest()); |
| 235 PresentationRequest request1 = |
| 236 delegate_impl_->GetDefaultPresentationRequest(); |
| 237 EXPECT_TRUE(request1.Equals(observed_request1)); |
| 238 |
| 239 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer)); |
| 240 |
173 std::string url2("http://youtube.com"); | 241 std::string url2("http://youtube.com"); |
174 EXPECT_CALL(observer1, OnDefaultMediaSourceChanged( | 242 PresentationRequest observed_request2( |
175 Equals(MediaSourceForPresentationUrl(url2)), | 243 RenderFrameHostId(render_process_id, routing_id), url2, frame_url); |
176 GURL("http://www.google.com"))).Times(1); | 244 EXPECT_CALL(observer, OnDefaultPresentationChanged(Equals(observed_request2))) |
177 delegate_impl_->SetDefaultPresentationUrl(render_process_id, | 245 .Times(1); |
178 routing_id, url2); | 246 delegate_impl_->SetDefaultPresentationUrl(render_process_id, routing_id, url2, |
| 247 callback); |
| 248 ASSERT_TRUE(delegate_impl_->HasDefaultPresentationRequest()); |
| 249 PresentationRequest request2 = |
| 250 delegate_impl_->GetDefaultPresentationRequest(); |
| 251 EXPECT_TRUE(request2.Equals(observed_request2)); |
179 | 252 |
180 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer1)); | 253 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer)); |
| 254 |
181 // Remove default presentation URL. | 255 // Remove default presentation URL. |
182 EXPECT_CALL(observer1, OnDefaultMediaSourceChanged( | 256 EXPECT_CALL(observer, OnDefaultPresentationRemoved()).Times(1); |
183 Equals(MediaSource()), | 257 delegate_impl_->SetDefaultPresentationUrl(render_process_id, routing_id, "", |
184 GURL("http://www.google.com"))).Times(1); | 258 callback); |
185 delegate_impl_->SetDefaultPresentationUrl(render_process_id, routing_id, ""); | |
186 } | 259 } |
187 | 260 |
188 TEST_F(PresentationServiceDelegateImplTest, Reset) { | 261 TEST_F(PresentationServiceDelegateImplTest, Reset) { |
189 ON_CALL(router_, RegisterMediaSinksObserver(_)).WillByDefault(Return(true)); | 262 ON_CALL(router_, RegisterMediaSinksObserver(_)).WillByDefault(Return(true)); |
190 | 263 |
191 std::string presentation_url1("http://url1"); | 264 std::string presentation_url1("http://url1.fakeUrl"); |
192 MediaSource source = MediaSourceForPresentationUrl(presentation_url1); | 265 MediaSource source = MediaSourceForPresentationUrl(presentation_url1); |
193 MockScreenAvailabilityListener listener1(presentation_url1); | 266 MockScreenAvailabilityListener listener1(presentation_url1); |
194 int render_process_id = 1; | 267 int render_process_id = 1; |
195 int render_frame_id = 0; | 268 int render_frame_id = 0; |
196 | 269 |
197 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( | 270 EXPECT_TRUE(delegate_impl_->AddScreenAvailabilityListener( |
198 render_process_id, render_frame_id, &listener1)); | 271 render_process_id, render_frame_id, &listener1)); |
199 EXPECT_TRUE(delegate_impl_->HasScreenAvailabilityListenerForTest( | 272 EXPECT_TRUE(delegate_impl_->HasScreenAvailabilityListenerForTest( |
200 render_process_id, render_frame_id, source.id())); | 273 render_process_id, render_frame_id, source.id())); |
201 EXPECT_CALL(router_, UnregisterMediaSinksObserver(_)).Times(1); | 274 EXPECT_CALL(router_, UnregisterMediaSinksObserver(_)).Times(1); |
(...skipping 16 matching lines...) Expand all Loading... |
218 // Removes |delegate_observer2|. | 291 // Removes |delegate_observer2|. |
219 manager->RemoveObserver(345, 456); | 292 manager->RemoveObserver(345, 456); |
220 | 293 |
221 EXPECT_CALL(delegate_observer1, OnDelegateDestroyed()).Times(1); | 294 EXPECT_CALL(delegate_observer1, OnDelegateDestroyed()).Times(1); |
222 manager.reset(); | 295 manager.reset(); |
223 } | 296 } |
224 | 297 |
225 TEST_F(PresentationServiceDelegateImplTest, SinksObserverCantRegister) { | 298 TEST_F(PresentationServiceDelegateImplTest, SinksObserverCantRegister) { |
226 ON_CALL(router_, RegisterMediaSinksObserver(_)).WillByDefault(Return(false)); | 299 ON_CALL(router_, RegisterMediaSinksObserver(_)).WillByDefault(Return(false)); |
227 | 300 |
228 const std::string presentation_url("http://url1"); | 301 const std::string presentation_url("http://url1.fakeUrl"); |
229 MockScreenAvailabilityListener listener(presentation_url); | 302 MockScreenAvailabilityListener listener(presentation_url); |
230 const int render_process_id = 10; | 303 const int render_process_id = 10; |
231 const int render_frame_id = 1; | 304 const int render_frame_id = 1; |
232 | 305 |
233 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)).Times(1); | 306 EXPECT_CALL(router_, RegisterMediaSinksObserver(_)).Times(1); |
234 EXPECT_FALSE(delegate_impl_->AddScreenAvailabilityListener( | 307 EXPECT_FALSE(delegate_impl_->AddScreenAvailabilityListener( |
235 render_process_id, render_frame_id, &listener)); | 308 render_process_id, render_frame_id, &listener)); |
236 } | 309 } |
237 | 310 |
238 } // namespace media_router | 311 } // namespace media_router |
OLD | NEW |