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

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 3 * WITH UI Changes 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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 namespace { 46 namespace {
47 47
48 const char kDescription[] = "description"; 48 const char kDescription[] = "description";
49 const char kError[] = "error"; 49 const char kError[] = "error";
50 const char kExtensionId[] = "extension1234"; 50 const char kExtensionId[] = "extension1234";
51 const char kMessage[] = "message"; 51 const char kMessage[] = "message";
52 const char kSource[] = "source1"; 52 const char kSource[] = "source1";
53 const char kSource2[] = "source2"; 53 const char kSource2[] = "source2";
54 const char kRouteId[] = "routeId"; 54 const char kRouteId[] = "routeId";
55 const char kRouteId2[] = "routeId2"; 55 const char kRouteId2[] = "routeId2";
56 const char kJoinableRouteId[] = "joinableRouteId";
57 const char kJoinableRouteId2[] = "joinableRouteId2";
56 const char kSinkId[] = "sink"; 58 const char kSinkId[] = "sink";
57 const char kSinkId2[] = "sink2"; 59 const char kSinkId2[] = "sink2";
58 const char kSinkName[] = "sinkName"; 60 const char kSinkName[] = "sinkName";
59 const char kPresentationId[] = "presentationId"; 61 const char kPresentationId[] = "presentationId";
60 const char kOrigin[] = "http://origin/"; 62 const char kOrigin[] = "http://origin/";
61 const int kInvalidTabId = -1; 63 const int kInvalidTabId = -1;
62 const uint8 kBinaryMessage[] = {0x01, 0x02, 0x03, 0x04}; 64 const uint8 kBinaryMessage[] = {0x01, 0x02, 0x03, 0x04};
63 65
64 bool ArePresentationSessionMessagesEqual( 66 bool ArePresentationSessionMessagesEqual(
65 const content::PresentationSessionMessage* expected, 67 const content::PresentationSessionMessage* expected,
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 DISALLOW_COPY_AND_ASSIGN(TestProcessManager); 165 DISALLOW_COPY_AND_ASSIGN(TestProcessManager);
164 }; 166 };
165 167
166 // Mockable class for awaiting RegisterMediaRouteProvider callbacks. 168 // Mockable class for awaiting RegisterMediaRouteProvider callbacks.
167 class RegisterMediaRouteProviderHandler { 169 class RegisterMediaRouteProviderHandler {
168 public: 170 public:
169 MOCK_METHOD1(Invoke, void(const std::string& instance_id)); 171 MOCK_METHOD1(Invoke, void(const std::string& instance_id));
170 }; 172 };
171 173
172 TEST_F(MediaRouterMojoImplTest, CreateRoute) { 174 TEST_F(MediaRouterMojoImplTest, CreateRoute) {
173 MediaRoute expected_route(kRouteId, MediaSource(std::string(kSource)), 175 MediaSource media_source(kSource);
176 MediaRoute expected_route(kRouteId, media_source,
174 kSinkId, "", false, "", false); 177 kSinkId, "", false, "", false);
175 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New(); 178 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New();
176 route->media_source = kSource; 179 route->media_source = kSource;
177 route->media_sink_id = kSinkId; 180 route->media_sink_id = kSinkId;
178 route->media_route_id = kRouteId; 181 route->media_route_id = kRouteId;
179 route->description = kDescription; 182 route->description = kDescription;
180 route->is_local = true; 183 route->is_local = true;
181 route->for_display = true; 184 route->for_display = true;
182 185
183 // Use a lambda function as an invocation target here to work around 186 // Use a lambda function as an invocation target here to work around
184 // a limitation with GMock::Invoke that prevents it from using move-only types 187 // a limitation with GMock::Invoke that prevents it from using move-only types
185 // in runnable parameter lists. 188 // in runnable parameter lists.
186 EXPECT_CALL(mock_media_route_provider_, 189 EXPECT_CALL(mock_media_route_provider_,
187 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _, 190 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _,
188 mojo::String(kOrigin), kInvalidTabId, _)) 191 mojo::String(kOrigin), kInvalidTabId, _))
189 .WillOnce(Invoke([&route]( 192 .WillOnce(Invoke([&route](
190 const mojo::String& source, const mojo::String& sink, 193 const mojo::String& source, const mojo::String& sink,
191 const mojo::String& presentation_id, const mojo::String& origin, 194 const mojo::String& presentation_id, const mojo::String& origin,
192 int tab_id, 195 int tab_id,
193 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) { 196 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) {
194 cb.Run(route.Pass(), mojo::String()); 197 cb.Run(route.Pass(), mojo::String());
195 })); 198 }));
196
197 // MediaRouterMojoImpl will start observing local displayable routes as a 199 // MediaRouterMojoImpl will start observing local displayable routes as a
198 // result of having one created. 200 // result of having one created.
199 EXPECT_CALL(mock_media_route_provider_, StartObservingMediaRoutes()); 201 EXPECT_CALL(mock_media_route_provider_,
202 StartObservingMediaRoutes(mojo::String("")));
200 203
201 RouteResponseCallbackHandler handler; 204 RouteResponseCallbackHandler handler;
202 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), "")); 205 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), ""));
203 std::vector<MediaRouteResponseCallback> route_response_callbacks; 206 std::vector<MediaRouteResponseCallback> route_response_callbacks;
204 route_response_callbacks.push_back(base::Bind( 207 route_response_callbacks.push_back(base::Bind(
205 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 208 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
206 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr, 209 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr,
207 route_response_callbacks); 210 route_response_callbacks);
208 ProcessEventLoop(); 211 ProcessEventLoop();
209 } 212 }
(...skipping 14 matching lines...) Expand all
224 EXPECT_CALL(handler, Invoke(nullptr, "", kError)); 227 EXPECT_CALL(handler, Invoke(nullptr, "", kError));
225 std::vector<MediaRouteResponseCallback> route_response_callbacks; 228 std::vector<MediaRouteResponseCallback> route_response_callbacks;
226 route_response_callbacks.push_back(base::Bind( 229 route_response_callbacks.push_back(base::Bind(
227 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 230 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
228 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr, 231 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr,
229 route_response_callbacks); 232 route_response_callbacks);
230 ProcessEventLoop(); 233 ProcessEventLoop();
231 } 234 }
232 235
233 TEST_F(MediaRouterMojoImplTest, JoinRoute) { 236 TEST_F(MediaRouterMojoImplTest, JoinRoute) {
234 MediaRoute expected_route(kRouteId, MediaSource(std::string(kSource)), 237 MediaSource media_source(kSource);
238 MediaRoute expected_route(kRouteId, media_source,
235 kSinkId, "", false, "", false); 239 kSinkId, "", false, "", false);
236 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New(); 240 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New();
237 route->media_source = kSource; 241 route->media_source = kSource;
238 route->media_sink_id = kSinkId; 242 route->media_sink_id = kSinkId;
239 route->media_route_id = kRouteId; 243 route->media_route_id = kRouteId;
240 route->description = kDescription; 244 route->description = kDescription;
241 route->is_local = true; 245 route->is_local = true;
242 route->for_display = true; 246 route->for_display = true;
243 247
244 // Use a lambda function as an invocation target here to work around 248 // Use a lambda function as an invocation target here to work around
245 // a limitation with GMock::Invoke that prevents it from using move-only types 249 // a limitation with GMock::Invoke that prevents it from using move-only types
246 // in runnable parameter lists. 250 // in runnable parameter lists.
247 EXPECT_CALL(mock_media_route_provider_, 251 EXPECT_CALL(mock_media_route_provider_,
248 JoinRoute(mojo::String(kSource), mojo::String(kPresentationId), 252 JoinRoute(mojo::String(kSource), mojo::String(kPresentationId),
249 mojo::String(kOrigin), kInvalidTabId, _)) 253 mojo::String(kOrigin), kInvalidTabId, _))
250 .WillOnce(Invoke([&route]( 254 .WillOnce(Invoke([&route](
251 const mojo::String& source, const mojo::String& presentation_id, 255 const mojo::String& source, const mojo::String& presentation_id,
252 const mojo::String& origin, int tab_id, 256 const mojo::String& origin, int tab_id,
253 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) { 257 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) {
254 cb.Run(route.Pass(), mojo::String()); 258 cb.Run(route.Pass(), mojo::String());
255 })); 259 }));
256 260
257 // MediaRouterMojoImpl will start observing local displayable routes as a 261 // MediaRouterMojoImpl will start observing local displayable routes as a
258 // result of having one created. 262 // result of having one created.
259 EXPECT_CALL(mock_media_route_provider_, StartObservingMediaRoutes()); 263 EXPECT_CALL(mock_media_route_provider_,
264 StartObservingMediaRoutes(mojo::String("")));
260 265
261 RouteResponseCallbackHandler handler; 266 RouteResponseCallbackHandler handler;
262 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), "")); 267 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), ""));
263 std::vector<MediaRouteResponseCallback> route_response_callbacks; 268 std::vector<MediaRouteResponseCallback> route_response_callbacks;
264 route_response_callbacks.push_back(base::Bind( 269 route_response_callbacks.push_back(base::Bind(
265 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 270 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
266 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr, 271 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr,
267 route_response_callbacks); 272 route_response_callbacks);
268 ProcessEventLoop(); 273 ProcessEventLoop();
269 } 274 }
(...skipping 12 matching lines...) Expand all
282 RouteResponseCallbackHandler handler; 287 RouteResponseCallbackHandler handler;
283 EXPECT_CALL(handler, Invoke(nullptr, "", kError)); 288 EXPECT_CALL(handler, Invoke(nullptr, "", kError));
284 std::vector<MediaRouteResponseCallback> route_response_callbacks; 289 std::vector<MediaRouteResponseCallback> route_response_callbacks;
285 route_response_callbacks.push_back(base::Bind( 290 route_response_callbacks.push_back(base::Bind(
286 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 291 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
287 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr, 292 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr,
288 route_response_callbacks); 293 route_response_callbacks);
289 ProcessEventLoop(); 294 ProcessEventLoop();
290 } 295 }
291 296
297 TEST_F(MediaRouterMojoImplTest, ConnectRouteByRouteId) {
298 MediaSource media_source(kSource);
299 MediaRoute expected_route(kRouteId, media_source,
300 kSinkId, "", false, "", false);
301 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New();
302 route->media_source = kSource;
303 route->media_sink_id = kSinkId;
304 route->media_route_id = kRouteId;
305 route->description = kDescription;
306 route->is_local = true;
307 route->for_display = true;
308
309 // Use a lambda function as an invocation target here to work around
310 // a limitation with GMock::Invoke that prevents it from using move-only types
311 // in runnable parameter lists.
312 EXPECT_CALL(mock_media_route_provider_,
313 ConnectRouteByRouteId(mojo::String(kSource),
314 mojo::String(kRouteId), _,
apacible 2015/12/18 22:34:19 nit: fix indentation.
matt.boetger 2015/12/18 23:37:15 Done.
315 mojo::String(kOrigin), kInvalidTabId, _))
316 .WillOnce(Invoke([&route](
317 const mojo::String& source, const mojo::String& route_id,
318 const mojo::String& presentation_id,
319 const mojo::String& origin, int tab_id,
320 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) {
321 cb.Run(route.Pass(), mojo::String());
322 }));
323 EXPECT_CALL(mock_media_route_provider_,
324 StartObservingMediaRoutes(mojo::String("")));
325
326 RouteResponseCallbackHandler handler;
327 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), ""));
328 std::vector<MediaRouteResponseCallback> route_response_callbacks;
329 route_response_callbacks.push_back(base::Bind(
330 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
331 router()->ConnectRouteByRouteId(kSource, kRouteId, GURL(kOrigin), nullptr,
332 route_response_callbacks);
333 ProcessEventLoop();
334 }
335
336 TEST_F(MediaRouterMojoImplTest, ConnectRouteByRouteIdFails) {
337 EXPECT_CALL(mock_media_route_provider_,
338 ConnectRouteByRouteId(mojo::String(kSource),
339 mojo::String(kRouteId), _,
apacible 2015/12/18 22:34:19 nit: fix indentation here and L340.
matt.boetger 2015/12/18 23:37:15 Done.
340 mojo::String(kOrigin), kInvalidTabId, _))
341 .WillOnce(Invoke(
342 [](const mojo::String& source,
343 const mojo::String& route_id,
344 const mojo::String& presentation_id,
345 const mojo::String& origin, int tab_id,
346 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) {
347 cb.Run(interfaces::MediaRoutePtr(), mojo::String(kError));
348 }));
349
350 RouteResponseCallbackHandler handler;
351 EXPECT_CALL(handler, Invoke(nullptr, "", kError));
352 std::vector<MediaRouteResponseCallback> route_response_callbacks;
353 route_response_callbacks.push_back(base::Bind(
354 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
355 router()->ConnectRouteByRouteId(kSource, kRouteId, GURL(kOrigin), nullptr,
356 route_response_callbacks);
apacible 2015/12/18 22:34:19 nit: fix indentation.
matt.boetger 2015/12/18 23:37:15 Done.
357 ProcessEventLoop();
358 }
359
292 TEST_F(MediaRouterMojoImplTest, CloseRoute) { 360 TEST_F(MediaRouterMojoImplTest, CloseRoute) {
293 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId))); 361 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId)));
294 router()->CloseRoute(kRouteId); 362 router()->CloseRoute(kRouteId);
295 ProcessEventLoop(); 363 ProcessEventLoop();
296 } 364 }
297 365
298 TEST_F(MediaRouterMojoImplTest, HandleIssue) { 366 TEST_F(MediaRouterMojoImplTest, HandleIssue) {
299 MockIssuesObserver issue_observer1(router()); 367 MockIssuesObserver issue_observer1(router());
300 MockIssuesObserver issue_observer2(router()); 368 MockIssuesObserver issue_observer2(router());
301 issue_observer1.RegisterObserver(); 369 issue_observer1.RegisterObserver();
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 EXPECT_CALL(mock_media_route_provider_, 560 EXPECT_CALL(mock_media_route_provider_,
493 StopObservingMediaSinks(mojo::String(kSource2))) 561 StopObservingMediaSinks(mojo::String(kSource2)))
494 .Times(1); 562 .Times(1);
495 sinks_observer.reset(); // Unregisters kSource from router(). 563 sinks_observer.reset(); // Unregisters kSource from router().
496 sinks_observer2.reset(); // Unregisters kSource2 from router(). 564 sinks_observer2.reset(); // Unregisters kSource2 from router().
497 ProcessEventLoop(); 565 ProcessEventLoop();
498 } 566 }
499 567
500 TEST_F(MediaRouterMojoImplTest, RegisterAndUnregisterMediaRoutesObserver) { 568 TEST_F(MediaRouterMojoImplTest, RegisterAndUnregisterMediaRoutesObserver) {
501 MockMediaRouter mock_router; 569 MockMediaRouter mock_router;
502 EXPECT_CALL(mock_media_route_provider_, StartObservingMediaRoutes()).Times(2); 570 MediaSource media_source(kSource);
571 MediaSource different_media_source(kSource2);
572 EXPECT_CALL(mock_media_route_provider_,
573 StartObservingMediaRoutes(mojo::String(media_source.id()))).Times(2);
574 EXPECT_CALL(mock_media_route_provider_,
575 StartObservingMediaRoutes(
576 mojo::String(different_media_source.id()))).Times(1);
503 577
504 MediaRoutesObserver* observer_captured; 578 MediaRoutesObserver* observer_captured;
505 EXPECT_CALL(mock_router, RegisterMediaRoutesObserver(_)) 579 EXPECT_CALL(mock_router, RegisterMediaRoutesObserver(_))
506 .Times(2) 580 .Times(3)
507 .WillRepeatedly(SaveArg<0>(&observer_captured)); 581 .WillRepeatedly(SaveArg<0>(&observer_captured));
508 MockMediaRoutesObserver routes_observer(&mock_router); 582 MockMediaRoutesObserver routes_observer(&mock_router, media_source.id());
509 EXPECT_EQ(observer_captured, &routes_observer); 583 EXPECT_EQ(observer_captured, &routes_observer);
510 MockMediaRoutesObserver extra_routes_observer(&mock_router); 584 MockMediaRoutesObserver extra_routes_observer(&mock_router,
585 media_source.id());
511 EXPECT_EQ(observer_captured, &extra_routes_observer); 586 EXPECT_EQ(observer_captured, &extra_routes_observer);
587 MockMediaRoutesObserver different_routes_observer(&mock_router,
588 different_media_source.id());
589 EXPECT_EQ(observer_captured, &different_routes_observer);
512 router()->RegisterMediaRoutesObserver(&routes_observer); 590 router()->RegisterMediaRoutesObserver(&routes_observer);
513 router()->RegisterMediaRoutesObserver(&extra_routes_observer); 591 router()->RegisterMediaRoutesObserver(&extra_routes_observer);
592 router()->RegisterMediaRoutesObserver(&different_routes_observer);
514 593
515 std::vector<MediaRoute> expected_routes; 594 std::vector<MediaRoute> expected_routes;
516 expected_routes.push_back(MediaRoute(kRouteId, MediaSource(kSource), kSinkId, 595 expected_routes.push_back(MediaRoute(kRouteId, media_source, kSinkId,
517 kDescription, false, "", false)); 596 kDescription, false, "", false));
518 expected_routes.push_back(MediaRoute(kRouteId2, MediaSource(kSource), kSinkId, 597 expected_routes.push_back(MediaRoute(kRouteId2, media_source, kSinkId,
519 kDescription, false, "", false)); 598 kDescription, false, "", false));
599 std::vector<MediaRoute::Id> expected_joinable_route_ids;
600 expected_joinable_route_ids.push_back(kJoinableRouteId);
601 expected_joinable_route_ids.push_back(kJoinableRouteId2);
602
603 mojo::Array<mojo::String> mojo_joinable_routes(2);
604 mojo_joinable_routes[0] = kJoinableRouteId;
605 mojo_joinable_routes[1] = kJoinableRouteId2;
520 606
521 mojo::Array<interfaces::MediaRoutePtr> mojo_routes(2); 607 mojo::Array<interfaces::MediaRoutePtr> mojo_routes(2);
522 mojo_routes[0] = interfaces::MediaRoute::New(); 608 mojo_routes[0] = interfaces::MediaRoute::New();
523 mojo_routes[0]->media_route_id = kRouteId; 609 mojo_routes[0]->media_route_id = kRouteId;
524 mojo_routes[0]->media_source = kSource; 610 mojo_routes[0]->media_source = kSource;
525 mojo_routes[0]->media_sink_id = kSinkId; 611 mojo_routes[0]->media_sink_id = kSinkId;
526 mojo_routes[0]->description = kDescription; 612 mojo_routes[0]->description = kDescription;
527 mojo_routes[0]->is_local = false; 613 mojo_routes[0]->is_local = false;
528 mojo_routes[1] = interfaces::MediaRoute::New(); 614 mojo_routes[1] = interfaces::MediaRoute::New();
529 mojo_routes[1]->media_route_id = kRouteId2; 615 mojo_routes[1]->media_route_id = kRouteId2;
530 mojo_routes[1]->media_source = kSource; 616 mojo_routes[1]->media_source = kSource;
531 mojo_routes[1]->media_sink_id = kSinkId; 617 mojo_routes[1]->media_sink_id = kSinkId;
532 mojo_routes[1]->description = kDescription; 618 mojo_routes[1]->description = kDescription;
533 mojo_routes[1]->is_local = false; 619 mojo_routes[1]->is_local = false;
534 620
535 EXPECT_CALL(routes_observer, 621 EXPECT_CALL(routes_observer,
536 OnRoutesUpdated(SequenceEquals(expected_routes))); 622 OnRoutesUpdated(SequenceEquals(expected_routes),
623 expected_joinable_route_ids));
537 EXPECT_CALL(extra_routes_observer, 624 EXPECT_CALL(extra_routes_observer,
538 OnRoutesUpdated(SequenceEquals(expected_routes))); 625 OnRoutesUpdated(SequenceEquals(expected_routes),
539 media_router_proxy_->OnRoutesUpdated(mojo_routes.Pass()); 626 expected_joinable_route_ids));
627 EXPECT_CALL(different_routes_observer,
628 OnRoutesUpdated(SequenceEquals(expected_routes),
629 expected_joinable_route_ids)).Times(0);
630 media_router_proxy_->OnRoutesUpdated(media_source.id(),
631 mojo_routes.Pass(),
632 mojo_joinable_routes.Pass());
540 ProcessEventLoop(); 633 ProcessEventLoop();
541 634
542 EXPECT_CALL(mock_router, UnregisterMediaRoutesObserver(&routes_observer)); 635 EXPECT_CALL(mock_router, UnregisterMediaRoutesObserver(&routes_observer));
543 EXPECT_CALL(mock_router, 636 EXPECT_CALL(mock_router,
544 UnregisterMediaRoutesObserver(&extra_routes_observer)); 637 UnregisterMediaRoutesObserver(&extra_routes_observer));
638 EXPECT_CALL(mock_router,
639 UnregisterMediaRoutesObserver(&different_routes_observer));
545 router()->UnregisterMediaRoutesObserver(&routes_observer); 640 router()->UnregisterMediaRoutesObserver(&routes_observer);
546 router()->UnregisterMediaRoutesObserver(&extra_routes_observer); 641 router()->UnregisterMediaRoutesObserver(&extra_routes_observer);
547 EXPECT_CALL(mock_media_route_provider_, StopObservingMediaRoutes()); 642 router()->UnregisterMediaRoutesObserver(&different_routes_observer);
643 EXPECT_CALL(mock_media_route_provider_,
644 StopObservingMediaRoutes(
645 mojo::String(media_source.id()))).Times(1);
apacible 2015/12/18 22:34:19 nit: fix indentation here and L648.
matt.boetger 2015/12/18 23:37:15 Done.
646 EXPECT_CALL(mock_media_route_provider_,
647 StopObservingMediaRoutes(
648 mojo::String(different_media_source.id())));
548 ProcessEventLoop(); 649 ProcessEventLoop();
549 } 650 }
550 651
551 TEST_F(MediaRouterMojoImplTest, SendRouteMessage) { 652 TEST_F(MediaRouterMojoImplTest, SendRouteMessage) {
552 EXPECT_CALL( 653 EXPECT_CALL(
553 mock_media_route_provider_, 654 mock_media_route_provider_,
554 SendRouteMessage(mojo::String(kRouteId), mojo::String(kMessage), _)) 655 SendRouteMessage(mojo::String(kRouteId), mojo::String(kMessage), _))
555 .WillOnce(Invoke([]( 656 .WillOnce(Invoke([](
556 const MediaRoute::Id& route_id, const std::string& message, 657 const MediaRoute::Id& route_id, const std::string& message,
557 const interfaces::MediaRouteProvider::SendRouteMessageCallback& cb) { 658 const interfaces::MediaRouteProvider::SendRouteMessageCallback& cb) {
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after
1059 EXPECT_CALL(provide_handler_, Invoke(testing::Not(""))); 1160 EXPECT_CALL(provide_handler_, Invoke(testing::Not("")));
1060 EXPECT_CALL(*process_manager_, IsEventPageSuspended(kExtensionId)) 1161 EXPECT_CALL(*process_manager_, IsEventPageSuspended(kExtensionId))
1061 .WillOnce(Return(false)); 1162 .WillOnce(Return(false));
1062 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId2))) 1163 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId2)))
1063 .Times(kMaxPendingRequests); 1164 .Times(kMaxPendingRequests);
1064 RegisterMediaRouteProvider(); 1165 RegisterMediaRouteProvider();
1065 ProcessEventLoop(); 1166 ProcessEventLoop();
1066 } 1167 }
1067 1168
1068 } // namespace media_router 1169 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698