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

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

Issue 1415103006: Non-Local Join for Media Router and Presentation API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review Fixes Created 5 years 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 <string> 5 #include <string>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 namespace { 43 namespace {
44 44
45 const char kDescription[] = "description"; 45 const char kDescription[] = "description";
46 const char kError[] = "error"; 46 const char kError[] = "error";
47 const char kExtensionId[] = "extension1234"; 47 const char kExtensionId[] = "extension1234";
48 const char kMessage[] = "message"; 48 const char kMessage[] = "message";
49 const char kSource[] = "source1"; 49 const char kSource[] = "source1";
50 const char kSource2[] = "source2"; 50 const char kSource2[] = "source2";
51 const char kRouteId[] = "routeId"; 51 const char kRouteId[] = "routeId";
52 const char kRouteId2[] = "routeId2"; 52 const char kRouteId2[] = "routeId2";
53 const char kJoinableRouteId[] = "joinableRouteId2";
imcheng 2015/12/01 23:45:06 "joinableRouteId"
matt.boetger 2015/12/03 01:19:20 Done.
54 const char kJoinableRouteId2[] = "joinableRouteId2";
53 const char kSinkId[] = "sink"; 55 const char kSinkId[] = "sink";
54 const char kSinkId2[] = "sink2"; 56 const char kSinkId2[] = "sink2";
55 const char kSinkName[] = "sinkName"; 57 const char kSinkName[] = "sinkName";
56 const char kPresentationId[] = "presentationId"; 58 const char kPresentationId[] = "presentationId";
57 const char kOrigin[] = "http://origin/"; 59 const char kOrigin[] = "http://origin/";
58 const int kInvalidTabId = -1; 60 const int kInvalidTabId = -1;
59 const uint8 kBinaryMessage[] = {0x01, 0x02, 0x03, 0x04}; 61 const uint8 kBinaryMessage[] = {0x01, 0x02, 0x03, 0x04};
60 62
61 bool ArePresentationSessionMessagesEqual( 63 bool ArePresentationSessionMessagesEqual(
62 const content::PresentationSessionMessage* expected, 64 const content::PresentationSessionMessage* expected,
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 DISALLOW_COPY_AND_ASSIGN(TestProcessManager); 162 DISALLOW_COPY_AND_ASSIGN(TestProcessManager);
161 }; 163 };
162 164
163 // Mockable class for awaiting RegisterMediaRouteProvider callbacks. 165 // Mockable class for awaiting RegisterMediaRouteProvider callbacks.
164 class RegisterMediaRouteProviderHandler { 166 class RegisterMediaRouteProviderHandler {
165 public: 167 public:
166 MOCK_METHOD1(Invoke, void(const std::string& instance_id)); 168 MOCK_METHOD1(Invoke, void(const std::string& instance_id));
167 }; 169 };
168 170
169 TEST_F(MediaRouterMojoImplTest, CreateRoute) { 171 TEST_F(MediaRouterMojoImplTest, CreateRoute) {
170 MediaRoute expected_route(kRouteId, MediaSource(std::string(kSource)), 172 MediaSource media_source(kSource);
173 MediaRoute expected_route(kRouteId, media_source,
171 kSinkId, "", false, "", false); 174 kSinkId, "", false, "", false);
172 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New(); 175 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New();
173 route->media_source = kSource; 176 route->media_source = kSource;
174 route->media_sink_id = kSinkId; 177 route->media_sink_id = kSinkId;
175 route->media_route_id = kRouteId; 178 route->media_route_id = kRouteId;
176 route->description = kDescription; 179 route->description = kDescription;
177 180
178 // Use a lambda function as an invocation target here to work around 181 // Use a lambda function as an invocation target here to work around
179 // a limitation with GMock::Invoke that prevents it from using move-only types 182 // a limitation with GMock::Invoke that prevents it from using move-only types
180 // in runnable parameter lists. 183 // in runnable parameter lists.
181 EXPECT_CALL(mock_media_route_provider_, 184 EXPECT_CALL(mock_media_route_provider_,
182 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _, 185 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _,
183 mojo::String(kOrigin), kInvalidTabId, _)) 186 mojo::String(kOrigin), kInvalidTabId, _))
184 .WillOnce(Invoke([&route]( 187 .WillOnce(Invoke([&route](
185 const mojo::String& source, const mojo::String& sink, 188 const mojo::String& source, const mojo::String& sink,
186 const mojo::String& presentation_id, const mojo::String& origin, 189 const mojo::String& presentation_id, const mojo::String& origin,
187 int tab_id, 190 int tab_id,
188 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) { 191 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) {
189 cb.Run(route.Pass(), mojo::String()); 192 cb.Run(route.Pass(), mojo::String());
190 })); 193 }));
191 EXPECT_CALL(mock_media_route_provider_, StartObservingMediaRoutes()); 194 EXPECT_CALL(mock_media_route_provider_,
195 StartObservingMediaRoutes(mojo::String("")));
192 196
193 RouteResponseCallbackHandler handler; 197 RouteResponseCallbackHandler handler;
194 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), "")); 198 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), ""));
195 std::vector<MediaRouteResponseCallback> route_response_callbacks; 199 std::vector<MediaRouteResponseCallback> route_response_callbacks;
196 route_response_callbacks.push_back(base::Bind( 200 route_response_callbacks.push_back(base::Bind(
197 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 201 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
198 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr, 202 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr,
199 route_response_callbacks); 203 route_response_callbacks);
200 ProcessEventLoop(); 204 ProcessEventLoop();
201 } 205 }
(...skipping 14 matching lines...) Expand all
216 EXPECT_CALL(handler, Invoke(nullptr, "", kError)); 220 EXPECT_CALL(handler, Invoke(nullptr, "", kError));
217 std::vector<MediaRouteResponseCallback> route_response_callbacks; 221 std::vector<MediaRouteResponseCallback> route_response_callbacks;
218 route_response_callbacks.push_back(base::Bind( 222 route_response_callbacks.push_back(base::Bind(
219 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 223 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
220 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr, 224 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr,
221 route_response_callbacks); 225 route_response_callbacks);
222 ProcessEventLoop(); 226 ProcessEventLoop();
223 } 227 }
224 228
225 TEST_F(MediaRouterMojoImplTest, JoinRoute) { 229 TEST_F(MediaRouterMojoImplTest, JoinRoute) {
226 MediaRoute expected_route(kRouteId, MediaSource(std::string(kSource)), 230 MediaSource media_source(kSource);
231 MediaRoute expected_route(kRouteId, media_source,
227 kSinkId, "", false, "", false); 232 kSinkId, "", false, "", false);
228 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New(); 233 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New();
229 route->media_source = kSource; 234 route->media_source = kSource;
230 route->media_sink_id = kSinkId; 235 route->media_sink_id = kSinkId;
231 route->media_route_id = kRouteId; 236 route->media_route_id = kRouteId;
232 route->description = kDescription; 237 route->description = kDescription;
233 238
234 // Use a lambda function as an invocation target here to work around 239 // Use a lambda function as an invocation target here to work around
235 // a limitation with GMock::Invoke that prevents it from using move-only types 240 // a limitation with GMock::Invoke that prevents it from using move-only types
236 // in runnable parameter lists. 241 // in runnable parameter lists.
237 EXPECT_CALL(mock_media_route_provider_, 242 EXPECT_CALL(mock_media_route_provider_,
238 JoinRoute(mojo::String(kSource), mojo::String(kPresentationId), 243 JoinRoute(mojo::String(kSource), mojo::String(kPresentationId),
239 mojo::String(kOrigin), kInvalidTabId, _)) 244 mojo::String(kOrigin), kInvalidTabId, _))
240 .WillOnce(Invoke([&route]( 245 .WillOnce(Invoke([&route](
241 const mojo::String& source, const mojo::String& presentation_id, 246 const mojo::String& source, const mojo::String& presentation_id,
242 const mojo::String& origin, int tab_id, 247 const mojo::String& origin, int tab_id,
243 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) { 248 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) {
244 cb.Run(route.Pass(), mojo::String()); 249 cb.Run(route.Pass(), mojo::String());
245 })); 250 }));
246 EXPECT_CALL(mock_media_route_provider_, StartObservingMediaRoutes()); 251 EXPECT_CALL(mock_media_route_provider_,
252 StartObservingMediaRoutes(mojo::String("")));
247 253
248 RouteResponseCallbackHandler handler; 254 RouteResponseCallbackHandler handler;
249 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), "")); 255 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), ""));
250 std::vector<MediaRouteResponseCallback> route_response_callbacks; 256 std::vector<MediaRouteResponseCallback> route_response_callbacks;
251 route_response_callbacks.push_back(base::Bind( 257 route_response_callbacks.push_back(base::Bind(
252 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 258 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
253 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr, 259 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr,
254 route_response_callbacks); 260 route_response_callbacks);
255 ProcessEventLoop(); 261 ProcessEventLoop();
256 } 262 }
(...skipping 12 matching lines...) Expand all
269 RouteResponseCallbackHandler handler; 275 RouteResponseCallbackHandler handler;
270 EXPECT_CALL(handler, Invoke(nullptr, "", kError)); 276 EXPECT_CALL(handler, Invoke(nullptr, "", kError));
271 std::vector<MediaRouteResponseCallback> route_response_callbacks; 277 std::vector<MediaRouteResponseCallback> route_response_callbacks;
272 route_response_callbacks.push_back(base::Bind( 278 route_response_callbacks.push_back(base::Bind(
273 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 279 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
274 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr, 280 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr,
275 route_response_callbacks); 281 route_response_callbacks);
276 ProcessEventLoop(); 282 ProcessEventLoop();
277 } 283 }
278 284
285 TEST_F(MediaRouterMojoImplTest, JoinRouteByRouteId) {
286 MediaSource media_source(kSource);
287 MediaRoute expected_route(kRouteId, media_source,
288 kSinkId, "", false, "", false);
289 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New();
290 route->media_source = kSource;
291 route->media_sink_id = kSinkId;
292 route->media_route_id = kRouteId;
293 route->description = kDescription;
294
295 std::string expected_presentation_id("non-local-join_");
296 expected_presentation_id += kRouteId;
297 // Use a lambda function as an invocation target here to work around
298 // a limitation with GMock::Invoke that prevents it from using move-only types
299 // in runnable parameter lists.
300 EXPECT_CALL(mock_media_route_provider_,
301 JoinRoute(mojo::String(kSource),
302 mojo::String(expected_presentation_id),
303 mojo::String(kOrigin), kInvalidTabId, _))
304 .WillOnce(Invoke([&route](
305 const mojo::String& source, const mojo::String& presentation_id,
306 const mojo::String& origin, int tab_id,
307 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) {
308 cb.Run(route.Pass(), mojo::String());
309 }));
310 EXPECT_CALL(mock_media_route_provider_,
311 StartObservingMediaRoutes(mojo::String("")));
312
313 RouteResponseCallbackHandler handler;
314 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), ""));
315 std::vector<MediaRouteResponseCallback> route_response_callbacks;
316 route_response_callbacks.push_back(base::Bind(
317 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
318 router()->JoinRouteByRouteId(kSource, kRouteId, GURL(kOrigin), nullptr,
319 route_response_callbacks);
320 ProcessEventLoop();
321 }
322
323 TEST_F(MediaRouterMojoImplTest, JoinRouteByRouteIdFails) {
324 std::string expected_presentation_id("non-local-join_");
325 expected_presentation_id += kRouteId;
326 EXPECT_CALL(mock_media_route_provider_,
327 JoinRoute(mojo::String(kSource),
328 mojo::String(expected_presentation_id),
329 mojo::String(kOrigin), kInvalidTabId, _))
330 .WillOnce(Invoke(
331 [](const mojo::String& source, const mojo::String& presentation_id,
332 const mojo::String& origin, int tab_id,
333 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) {
334 cb.Run(interfaces::MediaRoutePtr(), mojo::String(kError));
335 }));
336
337 RouteResponseCallbackHandler handler;
338 EXPECT_CALL(handler, Invoke(nullptr, "", kError));
339 std::vector<MediaRouteResponseCallback> route_response_callbacks;
340 route_response_callbacks.push_back(base::Bind(
341 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
342 router()->JoinRouteByRouteId(kSource, kRouteId, GURL(kOrigin), nullptr,
343 route_response_callbacks);
344 ProcessEventLoop();
345 }
346
279 TEST_F(MediaRouterMojoImplTest, CloseRoute) { 347 TEST_F(MediaRouterMojoImplTest, CloseRoute) {
280 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId))); 348 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId)));
281 router()->CloseRoute(kRouteId); 349 router()->CloseRoute(kRouteId);
282 ProcessEventLoop(); 350 ProcessEventLoop();
283 } 351 }
284 352
285 TEST_F(MediaRouterMojoImplTest, HandleIssue) { 353 TEST_F(MediaRouterMojoImplTest, HandleIssue) {
286 MockIssuesObserver issue_observer1(router()); 354 MockIssuesObserver issue_observer1(router());
287 MockIssuesObserver issue_observer2(router()); 355 MockIssuesObserver issue_observer2(router());
288 issue_observer1.RegisterObserver(); 356 issue_observer1.RegisterObserver();
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 EXPECT_CALL(mock_media_route_provider_, 548 EXPECT_CALL(mock_media_route_provider_,
481 StopObservingMediaSinks(mojo::String(kSource2))) 549 StopObservingMediaSinks(mojo::String(kSource2)))
482 .Times(1); 550 .Times(1);
483 sinks_observer.reset(); // Unregisters kSource from router(). 551 sinks_observer.reset(); // Unregisters kSource from router().
484 sinks_observer2.reset(); // Unregisters kSource2 from router(). 552 sinks_observer2.reset(); // Unregisters kSource2 from router().
485 ProcessEventLoop(); 553 ProcessEventLoop();
486 } 554 }
487 555
488 TEST_F(MediaRouterMojoImplTest, RegisterAndUnregisterMediaRoutesObserver) { 556 TEST_F(MediaRouterMojoImplTest, RegisterAndUnregisterMediaRoutesObserver) {
489 MockMediaRouter mock_router; 557 MockMediaRouter mock_router;
490 EXPECT_CALL(mock_media_route_provider_, StartObservingMediaRoutes()).Times(2); 558 MediaSource media_source(kSource);
559 MediaSource different_media_source(kSource2);
560 EXPECT_CALL(mock_media_route_provider_,
561 StartObservingMediaRoutes(mojo::String(media_source.id()))).Times(2);
562 EXPECT_CALL(mock_media_route_provider_,
563 StartObservingMediaRoutes(
564 mojo::String(different_media_source.id()))).Times(1);
491 565
492 MediaRoutesObserver* observer_captured; 566 MediaRoutesObserver* observer_captured;
493 EXPECT_CALL(mock_router, RegisterMediaRoutesObserver(_)) 567 EXPECT_CALL(mock_router, RegisterMediaRoutesObserver(_))
494 .Times(2) 568 .Times(3)
495 .WillRepeatedly(SaveArg<0>(&observer_captured)); 569 .WillRepeatedly(SaveArg<0>(&observer_captured));
496 MockMediaRoutesObserver routes_observer(&mock_router); 570 MockMediaRoutesObserver routes_observer(&mock_router, media_source.id());
497 EXPECT_EQ(observer_captured, &routes_observer); 571 EXPECT_EQ(observer_captured, &routes_observer);
498 MockMediaRoutesObserver extra_routes_observer(&mock_router); 572 MockMediaRoutesObserver extra_routes_observer(&mock_router,
573 media_source.id());
499 EXPECT_EQ(observer_captured, &extra_routes_observer); 574 EXPECT_EQ(observer_captured, &extra_routes_observer);
575 MockMediaRoutesObserver different_routes_observer(&mock_router,
576 different_media_source.id());
577 EXPECT_EQ(observer_captured, &different_routes_observer);
500 router()->RegisterMediaRoutesObserver(&routes_observer); 578 router()->RegisterMediaRoutesObserver(&routes_observer);
501 router()->RegisterMediaRoutesObserver(&extra_routes_observer); 579 router()->RegisterMediaRoutesObserver(&extra_routes_observer);
580 router()->RegisterMediaRoutesObserver(&different_routes_observer);
502 581
503 std::vector<MediaRoute> expected_routes; 582 std::vector<MediaRoute> expected_routes;
504 expected_routes.push_back(MediaRoute(kRouteId, MediaSource(kSource), kSinkId, 583 expected_routes.push_back(MediaRoute(kRouteId, media_source, kSinkId,
505 kDescription, false, "", false)); 584 kDescription, false, "", false));
506 expected_routes.push_back(MediaRoute(kRouteId2, MediaSource(kSource), kSinkId, 585 expected_routes.push_back(MediaRoute(kRouteId2, media_source, kSinkId,
507 kDescription, false, "", false)); 586 kDescription, false, "", false));
587 std::vector<MediaRoute::Id> expected_joinable_route_ids;
588 expected_joinable_route_ids.push_back(kJoinableRouteId);
589 expected_joinable_route_ids.push_back(kJoinableRouteId2);
590
591 mojo::Array<mojo::String> mojo_joinable_routes(2);
592 mojo_joinable_routes[0] = kJoinableRouteId;
593 mojo_joinable_routes[1] = kJoinableRouteId2;
508 594
509 mojo::Array<interfaces::MediaRoutePtr> mojo_routes(2); 595 mojo::Array<interfaces::MediaRoutePtr> mojo_routes(2);
510 mojo_routes[0] = interfaces::MediaRoute::New(); 596 mojo_routes[0] = interfaces::MediaRoute::New();
511 mojo_routes[0]->media_route_id = kRouteId; 597 mojo_routes[0]->media_route_id = kRouteId;
512 mojo_routes[0]->media_source = kSource; 598 mojo_routes[0]->media_source = kSource;
513 mojo_routes[0]->media_sink_id = kSinkId; 599 mojo_routes[0]->media_sink_id = kSinkId;
514 mojo_routes[0]->description = kDescription; 600 mojo_routes[0]->description = kDescription;
515 mojo_routes[0]->is_local = false; 601 mojo_routes[0]->is_local = false;
516 mojo_routes[1] = interfaces::MediaRoute::New(); 602 mojo_routes[1] = interfaces::MediaRoute::New();
517 mojo_routes[1]->media_route_id = kRouteId2; 603 mojo_routes[1]->media_route_id = kRouteId2;
518 mojo_routes[1]->media_source = kSource; 604 mojo_routes[1]->media_source = kSource;
519 mojo_routes[1]->media_sink_id = kSinkId; 605 mojo_routes[1]->media_sink_id = kSinkId;
520 mojo_routes[1]->description = kDescription; 606 mojo_routes[1]->description = kDescription;
521 mojo_routes[1]->is_local = false; 607 mojo_routes[1]->is_local = false;
522 608
523 EXPECT_CALL(routes_observer, 609 EXPECT_CALL(routes_observer,
524 OnRoutesUpdated(SequenceEquals(expected_routes))); 610 OnRoutesUpdated(SequenceEquals(expected_routes),
611 expected_joinable_route_ids));
525 EXPECT_CALL(extra_routes_observer, 612 EXPECT_CALL(extra_routes_observer,
526 OnRoutesUpdated(SequenceEquals(expected_routes))); 613 OnRoutesUpdated(SequenceEquals(expected_routes),
527 media_router_proxy_->OnRoutesUpdated(mojo_routes.Pass()); 614 expected_joinable_route_ids));
615 EXPECT_CALL(different_routes_observer,
616 OnRoutesUpdated(SequenceEquals(expected_routes),
617 expected_joinable_route_ids)).Times(0);
618 media_router_proxy_->OnRoutesUpdated(media_source.id(),
619 mojo_routes.Pass(),
620 mojo_joinable_routes.Pass());
528 ProcessEventLoop(); 621 ProcessEventLoop();
529 622
530 EXPECT_CALL(mock_router, UnregisterMediaRoutesObserver(&routes_observer)); 623 EXPECT_CALL(mock_router, UnregisterMediaRoutesObserver(&routes_observer));
531 EXPECT_CALL(mock_router, 624 EXPECT_CALL(mock_router,
532 UnregisterMediaRoutesObserver(&extra_routes_observer)); 625 UnregisterMediaRoutesObserver(&extra_routes_observer));
626 EXPECT_CALL(mock_router,
627 UnregisterMediaRoutesObserver(&different_routes_observer));
533 router()->UnregisterMediaRoutesObserver(&routes_observer); 628 router()->UnregisterMediaRoutesObserver(&routes_observer);
534 router()->UnregisterMediaRoutesObserver(&extra_routes_observer); 629 router()->UnregisterMediaRoutesObserver(&extra_routes_observer);
535 EXPECT_CALL(mock_media_route_provider_, StopObservingMediaRoutes()); 630 router()->UnregisterMediaRoutesObserver(&different_routes_observer);
631 EXPECT_CALL(mock_media_route_provider_,
632 StopObservingMediaRoutes(mojo::String(media_source.id())));
633 EXPECT_CALL(mock_media_route_provider_,
634 StopObservingMediaRoutes(
635 mojo::String(different_media_source.id())));
536 ProcessEventLoop(); 636 ProcessEventLoop();
537 } 637 }
538 638
539 TEST_F(MediaRouterMojoImplTest, SendRouteMessage) { 639 TEST_F(MediaRouterMojoImplTest, SendRouteMessage) {
540 EXPECT_CALL( 640 EXPECT_CALL(
541 mock_media_route_provider_, 641 mock_media_route_provider_,
542 SendRouteMessage(mojo::String(kRouteId), mojo::String(kMessage), _)) 642 SendRouteMessage(mojo::String(kRouteId), mojo::String(kMessage), _))
543 .WillOnce(Invoke([]( 643 .WillOnce(Invoke([](
544 const MediaRoute::Id& route_id, const std::string& message, 644 const MediaRoute::Id& route_id, const std::string& message,
545 const interfaces::MediaRouteProvider::SendRouteMessageCallback& cb) { 645 const interfaces::MediaRouteProvider::SendRouteMessageCallback& cb) {
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
946 EXPECT_CALL(provide_handler_, Invoke(testing::Not(""))); 1046 EXPECT_CALL(provide_handler_, Invoke(testing::Not("")));
947 EXPECT_CALL(*process_manager_, IsEventPageSuspended(kExtensionId)) 1047 EXPECT_CALL(*process_manager_, IsEventPageSuspended(kExtensionId))
948 .WillOnce(Return(false)); 1048 .WillOnce(Return(false));
949 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId2))) 1049 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId2)))
950 .Times(kMaxPendingRequests); 1050 .Times(kMaxPendingRequests);
951 RegisterMediaRouteProvider(); 1051 RegisterMediaRouteProvider();
952 ProcessEventLoop(); 1052 ProcessEventLoop();
953 } 1053 }
954 1054
955 } // namespace media_router 1055 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698