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

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

Issue 1554443003: Stop linking in the old Mojo EDK. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge and fix new flaky test Created 4 years, 11 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/BUILD.gn ('k') | chrome/browser/ui/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 issue_observer2.UnregisterObserver(); 465 issue_observer2.UnregisterObserver();
466 } 466 }
467 467
468 TEST_F(MediaRouterMojoImplTest, RegisterAndUnregisterMediaSinksObserver) { 468 TEST_F(MediaRouterMojoImplTest, RegisterAndUnregisterMediaSinksObserver) {
469 router()->OnSinkAvailabilityUpdated( 469 router()->OnSinkAvailabilityUpdated(
470 interfaces::MediaRouter::SINK_AVAILABILITY_AVAILABLE); 470 interfaces::MediaRouter::SINK_AVAILABILITY_AVAILABLE);
471 MediaSource media_source(kSource); 471 MediaSource media_source(kSource);
472 472
473 // These should only be called once even if there is more than one observer 473 // These should only be called once even if there is more than one observer
474 // for a given source. 474 // for a given source.
475 base::RunLoop run_loop;
475 EXPECT_CALL(mock_media_route_provider_, 476 EXPECT_CALL(mock_media_route_provider_,
476 StartObservingMediaSinks(mojo::String(kSource))); 477 StartObservingMediaSinks(mojo::String(kSource)));
477 EXPECT_CALL(mock_media_route_provider_, 478 EXPECT_CALL(mock_media_route_provider_,
478 StartObservingMediaSinks(mojo::String(kSource2))); 479 StartObservingMediaSinks(mojo::String(kSource2)))
480 .WillOnce(InvokeWithoutArgs([&run_loop]() {
481 run_loop.Quit();
482 }));
479 483
480 scoped_ptr<MockMediaSinksObserver> sinks_observer( 484 scoped_ptr<MockMediaSinksObserver> sinks_observer(
481 new MockMediaSinksObserver(router(), media_source)); 485 new MockMediaSinksObserver(router(), media_source));
482 EXPECT_TRUE(sinks_observer->Init()); 486 EXPECT_TRUE(sinks_observer->Init());
483 scoped_ptr<MockMediaSinksObserver> extra_sinks_observer( 487 scoped_ptr<MockMediaSinksObserver> extra_sinks_observer(
484 new MockMediaSinksObserver(router(), media_source)); 488 new MockMediaSinksObserver(router(), media_source));
485 EXPECT_TRUE(extra_sinks_observer->Init()); 489 EXPECT_TRUE(extra_sinks_observer->Init());
486 scoped_ptr<MockMediaSinksObserver> unrelated_sinks_observer( 490 scoped_ptr<MockMediaSinksObserver> unrelated_sinks_observer(
487 new MockMediaSinksObserver(router(), MediaSource(kSource2))); 491 new MockMediaSinksObserver(router(), MediaSource(kSource2)));
488 EXPECT_TRUE(unrelated_sinks_observer->Init()); 492 EXPECT_TRUE(unrelated_sinks_observer->Init());
489 ProcessEventLoop(); 493 run_loop.Run();
490 494
491 std::vector<MediaSink> expected_sinks; 495 std::vector<MediaSink> expected_sinks;
492 expected_sinks.push_back( 496 expected_sinks.push_back(
493 MediaSink(kSinkId, kSinkName, MediaSink::IconType::CAST)); 497 MediaSink(kSinkId, kSinkName, MediaSink::IconType::CAST));
494 expected_sinks.push_back( 498 expected_sinks.push_back(
495 MediaSink(kSinkId2, kSinkName, MediaSink::IconType::CAST)); 499 MediaSink(kSinkId2, kSinkName, MediaSink::IconType::CAST));
496 500
497 mojo::Array<interfaces::MediaSinkPtr> mojo_sinks(2); 501 mojo::Array<interfaces::MediaSinkPtr> mojo_sinks(2);
498 mojo_sinks[0] = interfaces::MediaSink::New(); 502 mojo_sinks[0] = interfaces::MediaSink::New();
499 mojo_sinks[0]->sink_id = kSinkId; 503 mojo_sinks[0]->sink_id = kSinkId;
500 mojo_sinks[0]->name = kSinkName; 504 mojo_sinks[0]->name = kSinkName;
501 mojo_sinks[0]->icon_type = 505 mojo_sinks[0]->icon_type =
502 media_router::interfaces::MediaSink::IconType::ICON_TYPE_CAST; 506 media_router::interfaces::MediaSink::IconType::ICON_TYPE_CAST;
503 mojo_sinks[1] = interfaces::MediaSink::New(); 507 mojo_sinks[1] = interfaces::MediaSink::New();
504 mojo_sinks[1]->sink_id = kSinkId2; 508 mojo_sinks[1]->sink_id = kSinkId2;
505 mojo_sinks[1]->name = kSinkName; 509 mojo_sinks[1]->name = kSinkName;
506 mojo_sinks[1]->icon_type = 510 mojo_sinks[1]->icon_type =
507 media_router::interfaces::MediaSink::IconType::ICON_TYPE_CAST; 511 media_router::interfaces::MediaSink::IconType::ICON_TYPE_CAST;
508 512
509 base::RunLoop run_loop; 513 base::RunLoop run_loop2;
510 EXPECT_CALL(*sinks_observer, OnSinksReceived(SequenceEquals(expected_sinks))); 514 EXPECT_CALL(*sinks_observer, OnSinksReceived(SequenceEquals(expected_sinks)));
511 EXPECT_CALL(*extra_sinks_observer, 515 EXPECT_CALL(*extra_sinks_observer,
512 OnSinksReceived(SequenceEquals(expected_sinks))) 516 OnSinksReceived(SequenceEquals(expected_sinks)))
513 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); 517 .WillOnce(InvokeWithoutArgs([&run_loop2]() { run_loop2.Quit(); }));
514 media_router_proxy_->OnSinksReceived(media_source.id(), 518 media_router_proxy_->OnSinksReceived(media_source.id(),
515 std::move(mojo_sinks)); 519 std::move(mojo_sinks));
516 run_loop.Run(); 520 run_loop2.Run();
517 521
518 // Since the MediaRouterMojoImpl has already received results for 522 // Since the MediaRouterMojoImpl has already received results for
519 // |media_source|, return cached results to observers that are subsequently 523 // |media_source|, return cached results to observers that are subsequently
520 // registered. 524 // registered.
521 scoped_ptr<MockMediaSinksObserver> cached_sinks_observer( 525 scoped_ptr<MockMediaSinksObserver> cached_sinks_observer(
522 new MockMediaSinksObserver(router(), media_source)); 526 new MockMediaSinksObserver(router(), media_source));
523 EXPECT_CALL(*cached_sinks_observer, 527 EXPECT_CALL(*cached_sinks_observer,
524 OnSinksReceived(SequenceEquals(expected_sinks))); 528 OnSinksReceived(SequenceEquals(expected_sinks)));
525 EXPECT_TRUE(cached_sinks_observer->Init()); 529 EXPECT_TRUE(cached_sinks_observer->Init());
526 530
527 base::RunLoop run_loop2; 531 base::RunLoop run_loop3, run_loop4;
528 EXPECT_CALL(mock_media_route_provider_, 532 EXPECT_CALL(mock_media_route_provider_,
529 StopObservingMediaSinks(mojo::String(kSource))); 533 StopObservingMediaSinks(mojo::String(kSource)))
534 .WillOnce(InvokeWithoutArgs([&run_loop3]() {
535 run_loop3.Quit();
536 }));
530 EXPECT_CALL(mock_media_route_provider_, 537 EXPECT_CALL(mock_media_route_provider_,
531 StopObservingMediaSinks(mojo::String(kSource2))) 538 StopObservingMediaSinks(mojo::String(kSource2)))
532 .WillOnce(InvokeWithoutArgs([&run_loop2]() { 539 .WillOnce(InvokeWithoutArgs([&run_loop4]() {
533 run_loop2.Quit(); 540 run_loop4.Quit();
534 })); 541 }));
535 sinks_observer.reset(); 542 sinks_observer.reset();
536 extra_sinks_observer.reset(); 543 extra_sinks_observer.reset();
537 unrelated_sinks_observer.reset(); 544 unrelated_sinks_observer.reset();
538 cached_sinks_observer.reset(); 545 cached_sinks_observer.reset();
539 run_loop2.Run(); 546 run_loop3.Run();
547 run_loop4.Run();
540 } 548 }
541 549
542 TEST_F(MediaRouterMojoImplTest, 550 TEST_F(MediaRouterMojoImplTest,
543 RegisterMediaSinksObserverWithAvailabilityChange) { 551 RegisterMediaSinksObserverWithAvailabilityChange) {
544 // When availability is UNAVAILABLE, no calls should be made to MRPM. 552 // When availability is UNAVAILABLE, no calls should be made to MRPM.
545 router()->OnSinkAvailabilityUpdated( 553 router()->OnSinkAvailabilityUpdated(
546 interfaces::MediaRouter::SINK_AVAILABILITY_UNAVAILABLE); 554 interfaces::MediaRouter::SINK_AVAILABILITY_UNAVAILABLE);
547 MediaSource media_source(kSource); 555 MediaSource media_source(kSource);
548 scoped_ptr<MockMediaSinksObserver> sinks_observer( 556 scoped_ptr<MockMediaSinksObserver> sinks_observer(
549 new MockMediaSinksObserver(router(), media_source)); 557 new MockMediaSinksObserver(router(), media_source));
550 EXPECT_CALL(*sinks_observer, OnSinksReceived(IsEmpty())); 558 EXPECT_CALL(*sinks_observer, OnSinksReceived(IsEmpty()));
551 EXPECT_TRUE(sinks_observer->Init()); 559 EXPECT_TRUE(sinks_observer->Init());
552 MediaSource media_source2(kSource2); 560 MediaSource media_source2(kSource2);
553 scoped_ptr<MockMediaSinksObserver> sinks_observer2( 561 scoped_ptr<MockMediaSinksObserver> sinks_observer2(
554 new MockMediaSinksObserver(router(), media_source2)); 562 new MockMediaSinksObserver(router(), media_source2));
555 EXPECT_CALL(*sinks_observer2, OnSinksReceived(IsEmpty())); 563 base::RunLoop run_loop;
564 EXPECT_CALL(*sinks_observer2, OnSinksReceived(IsEmpty()))
565 .WillOnce(InvokeWithoutArgs([&run_loop]() {
566 run_loop.Quit();
567 }));
556 EXPECT_TRUE(sinks_observer2->Init()); 568 EXPECT_TRUE(sinks_observer2->Init());
557 EXPECT_CALL(mock_media_route_provider_, 569 EXPECT_CALL(mock_media_route_provider_,
558 StartObservingMediaSinks(mojo::String(kSource))) 570 StartObservingMediaSinks(mojo::String(kSource)))
559 .Times(0); 571 .Times(0);
560 EXPECT_CALL(mock_media_route_provider_, 572 EXPECT_CALL(mock_media_route_provider_,
561 StartObservingMediaSinks(mojo::String(kSource2))) 573 StartObservingMediaSinks(mojo::String(kSource2)))
562 .Times(0); 574 .Times(0);
563 ProcessEventLoop(); 575 run_loop.Run();
576 base::RunLoop run_loop2;
564 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&mock_media_route_provider_)); 577 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&mock_media_route_provider_));
565 578
566 // When availability transitions AVAILABLE, existing sink queries should be 579 // When availability transitions AVAILABLE, existing sink queries should be
567 // sent to MRPM. 580 // sent to MRPM.
568 router()->OnSinkAvailabilityUpdated( 581 router()->OnSinkAvailabilityUpdated(
569 interfaces::MediaRouter::SINK_AVAILABILITY_AVAILABLE); 582 interfaces::MediaRouter::SINK_AVAILABILITY_AVAILABLE);
570 EXPECT_CALL(mock_media_route_provider_, 583 EXPECT_CALL(mock_media_route_provider_,
571 StartObservingMediaSinks(mojo::String(kSource))) 584 StartObservingMediaSinks(mojo::String(kSource)))
572 .Times(1); 585 .Times(1);
573 EXPECT_CALL(mock_media_route_provider_, 586 EXPECT_CALL(mock_media_route_provider_,
574 StartObservingMediaSinks(mojo::String(kSource2))) 587 StartObservingMediaSinks(mojo::String(kSource2)))
575 .Times(1); 588 .Times(1)
576 ProcessEventLoop(); 589 .WillOnce(InvokeWithoutArgs([&run_loop2]() {
590 run_loop2.Quit();
591 }));
592 run_loop2.Run();
577 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&mock_media_route_provider_)); 593 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&mock_media_route_provider_));
578 594
579 // No change in availability status; no calls should be made to MRPM. 595 // No change in availability status; no calls should be made to MRPM.
580 router()->OnSinkAvailabilityUpdated( 596 router()->OnSinkAvailabilityUpdated(
581 interfaces::MediaRouter::SINK_AVAILABILITY_AVAILABLE); 597 interfaces::MediaRouter::SINK_AVAILABILITY_AVAILABLE);
582 EXPECT_CALL(mock_media_route_provider_, 598 EXPECT_CALL(mock_media_route_provider_,
583 StartObservingMediaSinks(mojo::String(kSource))) 599 StartObservingMediaSinks(mojo::String(kSource)))
584 .Times(0); 600 .Times(0);
585 EXPECT_CALL(mock_media_route_provider_, 601 EXPECT_CALL(mock_media_route_provider_,
586 StartObservingMediaSinks(mojo::String(kSource2))) 602 StartObservingMediaSinks(mojo::String(kSource2)))
587 .Times(0); 603 .Times(0);
588 ProcessEventLoop(); 604 ProcessEventLoop();
589 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&mock_media_route_provider_)); 605 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&mock_media_route_provider_));
590 606
591 // When availability is UNAVAILABLE, queries are already removed from MRPM. 607 // When availability is UNAVAILABLE, queries are already removed from MRPM.
592 // Unregistering observer won't result in call to MRPM to remove query. 608 // Unregistering observer won't result in call to MRPM to remove query.
593 router()->OnSinkAvailabilityUpdated( 609 router()->OnSinkAvailabilityUpdated(
594 interfaces::MediaRouter::SINK_AVAILABILITY_UNAVAILABLE); 610 interfaces::MediaRouter::SINK_AVAILABILITY_UNAVAILABLE);
595 EXPECT_CALL(mock_media_route_provider_, 611 EXPECT_CALL(mock_media_route_provider_,
596 StopObservingMediaSinks(mojo::String(kSource))) 612 StopObservingMediaSinks(mojo::String(kSource)))
597 .Times(0); 613 .Times(0);
598 sinks_observer.reset(); 614 sinks_observer.reset();
599 ProcessEventLoop(); 615 ProcessEventLoop();
600 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&mock_media_route_provider_)); 616 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&mock_media_route_provider_));
601 617
602 // When availability is AVAILABLE, call is made to MRPM to remove query when 618 // When availability is AVAILABLE, call is made to MRPM to remove query when
603 // observer is unregistered. 619 // observer is unregistered.
604 router()->OnSinkAvailabilityUpdated( 620 router()->OnSinkAvailabilityUpdated(
605 interfaces::MediaRouter::SINK_AVAILABILITY_AVAILABLE); 621 interfaces::MediaRouter::SINK_AVAILABILITY_AVAILABLE);
622 base::RunLoop run_loop3;
606 EXPECT_CALL(mock_media_route_provider_, 623 EXPECT_CALL(mock_media_route_provider_,
607 StopObservingMediaSinks(mojo::String(kSource2))); 624 StopObservingMediaSinks(mojo::String(kSource2)))
625 .WillOnce(InvokeWithoutArgs([&run_loop3]() {
626 run_loop3.Quit();
627 }));
608 sinks_observer2.reset(); 628 sinks_observer2.reset();
609 ProcessEventLoop(); 629 run_loop3.Run();
610 } 630 }
611 631
612 TEST_F(MediaRouterMojoImplTest, RegisterAndUnregisterMediaRoutesObserver) { 632 TEST_F(MediaRouterMojoImplTest, RegisterAndUnregisterMediaRoutesObserver) {
613 MockMediaRouter mock_router; 633 MockMediaRouter mock_router;
614 MediaSource media_source(kSource); 634 MediaSource media_source(kSource);
615 MediaSource different_media_source(kSource2); 635 MediaSource different_media_source(kSource2);
616 EXPECT_CALL(mock_media_route_provider_, 636 EXPECT_CALL(mock_media_route_provider_,
617 StartObservingMediaRoutes(mojo::String(media_source.id()))).Times(2); 637 StartObservingMediaRoutes(mojo::String(media_source.id()))).Times(2);
618 EXPECT_CALL(mock_media_route_provider_, 638 EXPECT_CALL(mock_media_route_provider_,
619 StartObservingMediaRoutes( 639 StartObservingMediaRoutes(
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 mojo_routes[0]->media_sink_id = kSinkId; 675 mojo_routes[0]->media_sink_id = kSinkId;
656 mojo_routes[0]->description = kDescription; 676 mojo_routes[0]->description = kDescription;
657 mojo_routes[0]->is_local = false; 677 mojo_routes[0]->is_local = false;
658 mojo_routes[1] = interfaces::MediaRoute::New(); 678 mojo_routes[1] = interfaces::MediaRoute::New();
659 mojo_routes[1]->media_route_id = kRouteId2; 679 mojo_routes[1]->media_route_id = kRouteId2;
660 mojo_routes[1]->media_source = kSource; 680 mojo_routes[1]->media_source = kSource;
661 mojo_routes[1]->media_sink_id = kSinkId; 681 mojo_routes[1]->media_sink_id = kSinkId;
662 mojo_routes[1]->description = kDescription; 682 mojo_routes[1]->description = kDescription;
663 mojo_routes[1]->is_local = false; 683 mojo_routes[1]->is_local = false;
664 684
685 base::RunLoop run_loop;
665 EXPECT_CALL(routes_observer, 686 EXPECT_CALL(routes_observer,
666 OnRoutesUpdated(SequenceEquals(expected_routes), 687 OnRoutesUpdated(SequenceEquals(expected_routes),
667 expected_joinable_route_ids)); 688 expected_joinable_route_ids));
668 EXPECT_CALL(extra_routes_observer, 689 EXPECT_CALL(extra_routes_observer,
669 OnRoutesUpdated(SequenceEquals(expected_routes), 690 OnRoutesUpdated(SequenceEquals(expected_routes),
670 expected_joinable_route_ids)); 691 expected_joinable_route_ids))
692 .WillOnce(InvokeWithoutArgs([&run_loop]() {
693 run_loop.Quit();
694 }));
671 EXPECT_CALL(different_routes_observer, 695 EXPECT_CALL(different_routes_observer,
672 OnRoutesUpdated(SequenceEquals(expected_routes), 696 OnRoutesUpdated(SequenceEquals(expected_routes),
673 expected_joinable_route_ids)).Times(0); 697 expected_joinable_route_ids)).Times(0);
674 media_router_proxy_->OnRoutesUpdated(std::move(mojo_routes), 698 media_router_proxy_->OnRoutesUpdated(std::move(mojo_routes),
675 media_source.id(), 699 media_source.id(),
676 std::move(mojo_joinable_routes)); 700 std::move(mojo_joinable_routes));
677 ProcessEventLoop(); 701 run_loop.Run();
678 702
703 base::RunLoop run_loop2;
679 EXPECT_CALL(mock_router, UnregisterMediaRoutesObserver(&routes_observer)); 704 EXPECT_CALL(mock_router, UnregisterMediaRoutesObserver(&routes_observer));
680 EXPECT_CALL(mock_router, 705 EXPECT_CALL(mock_router,
681 UnregisterMediaRoutesObserver(&extra_routes_observer)); 706 UnregisterMediaRoutesObserver(&extra_routes_observer));
682 EXPECT_CALL(mock_router, 707 EXPECT_CALL(mock_router,
683 UnregisterMediaRoutesObserver(&different_routes_observer)); 708 UnregisterMediaRoutesObserver(&different_routes_observer));
684 router()->UnregisterMediaRoutesObserver(&routes_observer); 709 router()->UnregisterMediaRoutesObserver(&routes_observer);
685 router()->UnregisterMediaRoutesObserver(&extra_routes_observer); 710 router()->UnregisterMediaRoutesObserver(&extra_routes_observer);
686 router()->UnregisterMediaRoutesObserver(&different_routes_observer); 711 router()->UnregisterMediaRoutesObserver(&different_routes_observer);
687 EXPECT_CALL(mock_media_route_provider_, 712 EXPECT_CALL(mock_media_route_provider_,
688 StopObservingMediaRoutes( 713 StopObservingMediaRoutes(
689 mojo::String(media_source.id()))).Times(1); 714 mojo::String(media_source.id()))).Times(1);
690 EXPECT_CALL(mock_media_route_provider_, 715 EXPECT_CALL(mock_media_route_provider_,
691 StopObservingMediaRoutes( 716 StopObservingMediaRoutes(
692 mojo::String(different_media_source.id()))); 717 mojo::String(different_media_source.id())))
693 ProcessEventLoop(); 718 .WillOnce(InvokeWithoutArgs([&run_loop2]() {
719 run_loop2.Quit();
720 }));
721 run_loop2.Run();
694 } 722 }
695 723
696 TEST_F(MediaRouterMojoImplTest, SendRouteMessage) { 724 TEST_F(MediaRouterMojoImplTest, SendRouteMessage) {
697 EXPECT_CALL( 725 EXPECT_CALL(
698 mock_media_route_provider_, 726 mock_media_route_provider_,
699 SendRouteMessage(mojo::String(kRouteId), mojo::String(kMessage), _)) 727 SendRouteMessage(mojo::String(kRouteId), mojo::String(kMessage), _))
700 .WillOnce(Invoke([]( 728 .WillOnce(Invoke([](
701 const MediaRoute::Id& route_id, const std::string& message, 729 const MediaRoute::Id& route_id, const std::string& message,
702 const interfaces::MediaRouteProvider::SendRouteMessageCallback& cb) { 730 const interfaces::MediaRouteProvider::SendRouteMessageCallback& cb) {
703 cb.Run(true); 731 cb.Run(true);
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
1027 .WillRepeatedly(Return(true)); 1055 .WillRepeatedly(Return(true));
1028 EXPECT_CALL(mock_event_page_tracker_, WakeEventPage(extension_id(), _)) 1056 EXPECT_CALL(mock_event_page_tracker_, WakeEventPage(extension_id(), _))
1029 .Times(2) 1057 .Times(2)
1030 .WillOnce(Return(true)) 1058 .WillOnce(Return(true))
1031 .WillOnce(DoAll(InvokeWithoutArgs([&run_loop]() { 1059 .WillOnce(DoAll(InvokeWithoutArgs([&run_loop]() {
1032 run_loop.Quit(); 1060 run_loop.Quit();
1033 }), Return(true))); 1061 }), Return(true)));
1034 router()->DetachRoute(kRouteId); 1062 router()->DetachRoute(kRouteId);
1035 router()->DetachRoute(kRouteId2); 1063 router()->DetachRoute(kRouteId2);
1036 run_loop.Run(); 1064 run_loop.Run();
1065
1066 base::RunLoop run_loop2, run_loop3;
1037 EXPECT_CALL(mock_event_page_tracker_, IsEventPageSuspended(extension_id())) 1067 EXPECT_CALL(mock_event_page_tracker_, IsEventPageSuspended(extension_id()))
1038 .Times(1) 1068 .Times(1)
1039 .WillRepeatedly(Return(false)); 1069 .WillRepeatedly(Return(false));
1040 EXPECT_CALL(mock_media_route_provider_, DetachRoute(mojo::String(kRouteId))); 1070 EXPECT_CALL(mock_media_route_provider_, DetachRoute(mojo::String(kRouteId)))
1041 EXPECT_CALL(mock_media_route_provider_, DetachRoute(mojo::String(kRouteId2))); 1071 .WillOnce(InvokeWithoutArgs([&run_loop2]() {
1072 run_loop2.Quit();
1073 }));
1074 EXPECT_CALL(mock_media_route_provider_, DetachRoute(mojo::String(kRouteId2)))
1075 .WillOnce(InvokeWithoutArgs([&run_loop3]() {
1076 run_loop3.Quit();
1077 }));
1042 ConnectProviderManagerService(); 1078 ConnectProviderManagerService();
1043 ProcessEventLoop(); 1079 run_loop2.Run();
1080 run_loop3.Run();
1044 } 1081 }
1045 1082
1046 class MediaRouterMojoExtensionTest : public ::testing::Test { 1083 class MediaRouterMojoExtensionTest : public ::testing::Test {
1047 public: 1084 public:
1048 MediaRouterMojoExtensionTest() 1085 MediaRouterMojoExtensionTest()
1049 : process_manager_(nullptr), 1086 : process_manager_(nullptr),
1050 message_loop_(mojo::common::MessagePumpMojo::Create()) 1087 message_loop_(mojo::common::MessagePumpMojo::Create())
1051 {} 1088 {}
1052 1089
1053 ~MediaRouterMojoExtensionTest() override {} 1090 ~MediaRouterMojoExtensionTest() override {}
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
1281 .WillRepeatedly(InvokeWithoutArgs([&run_loop2, &count]() { 1318 .WillRepeatedly(InvokeWithoutArgs([&run_loop2, &count]() {
1282 if (++count == MediaRouterMojoImpl::kMaxPendingRequests) 1319 if (++count == MediaRouterMojoImpl::kMaxPendingRequests)
1283 run_loop2.Quit(); 1320 run_loop2.Quit();
1284 })); 1321 }));
1285 RegisterMediaRouteProvider(); 1322 RegisterMediaRouteProvider();
1286 run_loop.Run(); 1323 run_loop.Run();
1287 run_loop2.Run(); 1324 run_loop2.Run();
1288 } 1325 }
1289 1326
1290 } // namespace media_router 1327 } // namespace media_router
OLDNEW
« no previous file with comments | « chrome/browser/BUILD.gn ('k') | chrome/browser/ui/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698