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 <stddef.h> | 5 #include <stddef.h> |
6 #include <stdint.h> | 6 #include <stdint.h> |
7 | 7 |
8 #include <memory> | 8 #include <memory> |
9 #include <string> | 9 #include <string> |
10 #include <utility> | 10 #include <utility> |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
177 MOCK_METHOD1(IsEventPageSuspended, bool(const std::string& ext_id)); | 177 MOCK_METHOD1(IsEventPageSuspended, bool(const std::string& ext_id)); |
178 | 178 |
179 MOCK_METHOD2(WakeEventPage, | 179 MOCK_METHOD2(WakeEventPage, |
180 bool(const std::string& extension_id, | 180 bool(const std::string& extension_id, |
181 const base::Callback<void(bool)>& callback)); | 181 const base::Callback<void(bool)>& callback)); |
182 | 182 |
183 private: | 183 private: |
184 DISALLOW_COPY_AND_ASSIGN(TestProcessManager); | 184 DISALLOW_COPY_AND_ASSIGN(TestProcessManager); |
185 }; | 185 }; |
186 | 186 |
187 // Mockable class for awaiting RegisterMediaRouteProvider callbacks. | |
188 class RegisterMediaRouteProviderHandler { | |
189 public: | |
190 MOCK_METHOD1(Invoke, void(const std::string& instance_id)); | |
191 }; | |
192 | |
193 TEST_F(MediaRouterMojoImplTest, CreateRoute) { | 187 TEST_F(MediaRouterMojoImplTest, CreateRoute) { |
194 MediaSource media_source(kSource); | 188 MediaSource media_source(kSource); |
195 MediaRoute expected_route(kRouteId, media_source, kSinkId, "", false, "", | 189 MediaRoute expected_route(kRouteId, media_source, kSinkId, "", false, "", |
196 false); | 190 false); |
197 | 191 |
198 // Use a lambda function as an invocation target here to work around | 192 // Use a lambda function as an invocation target here to work around |
199 // a limitation with GMock::Invoke that prevents it from using move-only types | 193 // a limitation with GMock::Invoke that prevents it from using move-only types |
200 // in runnable parameter lists. | 194 // in runnable parameter lists. |
201 EXPECT_CALL(mock_media_route_provider_, | 195 EXPECT_CALL(mock_media_route_provider_, |
202 CreateRoute(kSource, kSinkId, _, url::Origin(GURL(kOrigin)), | 196 CreateRoute(kSource, kSinkId, _, url::Origin(GURL(kOrigin)), |
(...skipping 1297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1500 // It should be queued. | 1494 // It should be queued. |
1501 media_router_->DetachRoute(kRouteId); | 1495 media_router_->DetachRoute(kRouteId); |
1502 | 1496 |
1503 BindMediaRouteProvider(); | 1497 BindMediaRouteProvider(); |
1504 | 1498 |
1505 base::RunLoop run_loop, run_loop2; | 1499 base::RunLoop run_loop, run_loop2; |
1506 // |mojo_media_router| signals its readiness to the MR by registering | 1500 // |mojo_media_router| signals its readiness to the MR by registering |
1507 // itself via RegisterMediaRouteProvider(). | 1501 // itself via RegisterMediaRouteProvider(). |
1508 // Now that the |media_router| and |mojo_media_router| are fully initialized, | 1502 // Now that the |media_router| and |mojo_media_router| are fully initialized, |
1509 // the queued DetachRoute() call should be executed. | 1503 // the queued DetachRoute() call should be executed. |
1510 EXPECT_CALL(provide_handler_, Invoke(testing::Not(""))) | 1504 EXPECT_CALL(provide_handler_, InvokeInternal(testing::Not(""), _)) |
1511 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); | 1505 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); |
1512 EXPECT_CALL(*process_manager_, IsEventPageSuspended(extension_->id())) | 1506 EXPECT_CALL(*process_manager_, IsEventPageSuspended(extension_->id())) |
1513 .WillOnce(Return(false)); | 1507 .WillOnce(Return(false)); |
1514 EXPECT_CALL(mock_media_route_provider_, EnableMdnsDiscovery()) | 1508 EXPECT_CALL(mock_media_route_provider_, EnableMdnsDiscovery()) |
1515 .Times(AtMost(1)); | 1509 .Times(AtMost(1)); |
1516 EXPECT_CALL(mock_media_route_provider_, DetachRoute(kRouteId)) | 1510 EXPECT_CALL(mock_media_route_provider_, DetachRoute(kRouteId)) |
1517 .WillOnce(InvokeWithoutArgs([&run_loop2]() { run_loop2.Quit(); })); | 1511 .WillOnce(InvokeWithoutArgs([&run_loop2]() { run_loop2.Quit(); })); |
1518 RegisterMediaRouteProvider(); | 1512 RegisterMediaRouteProvider(); |
1519 run_loop.Run(); | 1513 run_loop.Run(); |
1520 run_loop2.Run(); | 1514 run_loop2.Run(); |
1521 | 1515 |
1522 base::RunLoop run_loop3; | 1516 base::RunLoop run_loop3; |
1523 // Extension is suspended and re-awoken. | 1517 // Extension is suspended and re-awoken. |
1524 ResetMediaRouteProvider(); | 1518 ResetMediaRouteProvider(); |
1525 EXPECT_CALL(*process_manager_, IsEventPageSuspended(extension_->id())) | 1519 EXPECT_CALL(*process_manager_, IsEventPageSuspended(extension_->id())) |
1526 .WillOnce(Return(true)); | 1520 .WillOnce(Return(true)); |
1527 EXPECT_CALL(*process_manager_, WakeEventPage(extension_->id(), _)) | 1521 EXPECT_CALL(*process_manager_, WakeEventPage(extension_->id(), _)) |
1528 .WillOnce(testing::DoAll( | 1522 .WillOnce(testing::DoAll( |
1529 media::RunCallback<1>(true), | 1523 media::RunCallback<1>(true), |
1530 InvokeWithoutArgs([&run_loop3]() { run_loop3.Quit(); }), | 1524 InvokeWithoutArgs([&run_loop3]() { run_loop3.Quit(); }), |
1531 Return(true))); | 1525 Return(true))); |
1532 media_router_->DetachRoute(kRouteId2); | 1526 media_router_->DetachRoute(kRouteId2); |
1533 run_loop3.Run(); | 1527 run_loop3.Run(); |
1534 | 1528 |
1535 base::RunLoop run_loop4, run_loop5; | 1529 base::RunLoop run_loop4, run_loop5; |
1536 // RegisterMediaRouteProvider() is called. | 1530 // RegisterMediaRouteProvider() is called. |
1537 // The queued DetachRoute(kRouteId2) call should be executed. | 1531 // The queued DetachRoute(kRouteId2) call should be executed. |
1538 EXPECT_CALL(provide_handler_, Invoke(testing::Not(""))) | 1532 EXPECT_CALL(provide_handler_, InvokeInternal(testing::Not(""), _)) |
1539 .WillOnce(InvokeWithoutArgs([&run_loop4]() { run_loop4.Quit(); })); | 1533 .WillOnce(InvokeWithoutArgs([&run_loop4]() { run_loop4.Quit(); })); |
1540 EXPECT_CALL(*process_manager_, IsEventPageSuspended(extension_->id())) | 1534 EXPECT_CALL(*process_manager_, IsEventPageSuspended(extension_->id())) |
1541 .WillOnce(Return(false)); | 1535 .WillOnce(Return(false)); |
1542 EXPECT_CALL(mock_media_route_provider_, EnableMdnsDiscovery()) | 1536 EXPECT_CALL(mock_media_route_provider_, EnableMdnsDiscovery()) |
1543 .Times(AtMost(1)); | 1537 .Times(AtMost(1)); |
1544 EXPECT_CALL(mock_media_route_provider_, DetachRoute(kRouteId2)) | 1538 EXPECT_CALL(mock_media_route_provider_, DetachRoute(kRouteId2)) |
1545 .WillOnce(InvokeWithoutArgs([&run_loop5]() { run_loop5.Quit(); })); | 1539 .WillOnce(InvokeWithoutArgs([&run_loop5]() { run_loop5.Quit(); })); |
1546 BindMediaRouteProvider(); | 1540 BindMediaRouteProvider(); |
1547 RegisterMediaRouteProvider(); | 1541 RegisterMediaRouteProvider(); |
1548 run_loop4.Run(); | 1542 run_loop4.Run(); |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1638 media_router_->DetachRoute(kRouteId2); | 1632 media_router_->DetachRoute(kRouteId2); |
1639 | 1633 |
1640 // The request queue size should not exceed |kMaxPendingRequests|. | 1634 // The request queue size should not exceed |kMaxPendingRequests|. |
1641 EXPECT_EQ(kMaxPendingRequests, media_router_->pending_requests_.size()); | 1635 EXPECT_EQ(kMaxPendingRequests, media_router_->pending_requests_.size()); |
1642 | 1636 |
1643 base::RunLoop run_loop, run_loop2; | 1637 base::RunLoop run_loop, run_loop2; |
1644 size_t count = 0; | 1638 size_t count = 0; |
1645 // The oldest request should have been dropped, so we don't expect to see | 1639 // The oldest request should have been dropped, so we don't expect to see |
1646 // DetachRoute(kRouteId) here. | 1640 // DetachRoute(kRouteId) here. |
1647 BindMediaRouteProvider(); | 1641 BindMediaRouteProvider(); |
1648 EXPECT_CALL(provide_handler_, Invoke(testing::Not(""))) | 1642 EXPECT_CALL(provide_handler_, InvokeInternal(testing::Not(""), _)) |
1649 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); | 1643 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); |
1650 EXPECT_CALL(*process_manager_, IsEventPageSuspended(extension_->id())); | 1644 EXPECT_CALL(*process_manager_, IsEventPageSuspended(extension_->id())); |
1651 EXPECT_CALL(mock_media_route_provider_, EnableMdnsDiscovery()) | 1645 EXPECT_CALL(mock_media_route_provider_, EnableMdnsDiscovery()) |
1652 .Times(AtMost(1)); | 1646 .Times(AtMost(1)); |
1653 EXPECT_CALL(mock_media_route_provider_, DetachRoute(kRouteId2)) | 1647 EXPECT_CALL(mock_media_route_provider_, DetachRoute(kRouteId2)) |
1654 .Times(kMaxPendingRequests) | 1648 .Times(kMaxPendingRequests) |
1655 .WillRepeatedly(InvokeWithoutArgs([&run_loop2, &count]() { | 1649 .WillRepeatedly(InvokeWithoutArgs([&run_loop2, &count]() { |
1656 if (++count == MediaRouterMojoImpl::kMaxPendingRequests) | 1650 if (++count == MediaRouterMojoImpl::kMaxPendingRequests) |
1657 run_loop2.Quit(); | 1651 run_loop2.Quit(); |
1658 })); | 1652 })); |
1659 RegisterMediaRouteProvider(); | 1653 RegisterMediaRouteProvider(); |
1660 run_loop.Run(); | 1654 run_loop.Run(); |
1661 run_loop2.Run(); | 1655 run_loop2.Run(); |
1662 ExpectVersionBucketCount(MediaRouteProviderVersion::SAME_VERSION_AS_CHROME, | 1656 ExpectVersionBucketCount(MediaRouteProviderVersion::SAME_VERSION_AS_CHROME, |
1663 1); | 1657 1); |
1664 } | 1658 } |
1665 | 1659 |
1666 #if defined(OS_WIN) | 1660 #if defined(OS_WIN) |
1667 TEST_F(MediaRouterMojoExtensionTest, EnableMdnsAfterEachRegister) { | 1661 TEST_F(MediaRouterMojoExtensionTest, EnableMdnsAfterEachRegister) { |
1668 // This should be queued since no MRPM is registered yet. | 1662 // This should be queued since no MRPM is registered yet. |
1669 media_router_->OnUserGesture(); | 1663 media_router_->OnUserGesture(); |
1670 | 1664 |
1671 BindMediaRouteProvider(); | 1665 BindMediaRouteProvider(); |
1672 | 1666 |
1673 base::RunLoop run_loop; | 1667 base::RunLoop run_loop; |
1674 base::RunLoop run_loop2; | 1668 base::RunLoop run_loop2; |
1675 EXPECT_CALL(provide_handler_, Invoke(testing::Not(""))) | 1669 EXPECT_CALL(provide_handler_, InvokeInternal(testing::Not(""), _)) |
1676 .WillOnce(InvokeWithoutArgs([&run_loop]() { | 1670 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); |
1677 run_loop.Quit(); | |
1678 })); | |
1679 EXPECT_CALL(*process_manager_, IsEventPageSuspended(extension_->id())) | 1671 EXPECT_CALL(*process_manager_, IsEventPageSuspended(extension_->id())) |
1680 .WillOnce(Return(false)).WillOnce(Return(false)); | 1672 .WillOnce(Return(false)).WillOnce(Return(false)); |
1681 EXPECT_CALL(mock_media_route_provider_, | 1673 EXPECT_CALL(mock_media_route_provider_, |
1682 UpdateMediaSinks(MediaSourceForDesktop().id())) | 1674 UpdateMediaSinks(MediaSourceForDesktop().id())) |
1683 .Times(2); | 1675 .Times(2); |
1684 // EnableMdnsDiscovery() is never called except on Windows. | 1676 // EnableMdnsDiscovery() is never called except on Windows. |
1685 EXPECT_CALL(mock_media_route_provider_, EnableMdnsDiscovery()) | 1677 EXPECT_CALL(mock_media_route_provider_, EnableMdnsDiscovery()) |
1686 .WillOnce(InvokeWithoutArgs([&run_loop2]() { | 1678 .WillOnce(InvokeWithoutArgs([&run_loop2]() { |
1687 run_loop2.Quit(); | 1679 run_loop2.Quit(); |
1688 })); | 1680 })); |
(...skipping 16 matching lines...) Expand all Loading... |
1705 InvokeWithoutArgs([&run_loop4]() { run_loop4.Quit(); }), | 1697 InvokeWithoutArgs([&run_loop4]() { run_loop4.Quit(); }), |
1706 Return(true))); | 1698 Return(true))); |
1707 // Use DetachRoute because it unconditionally calls RunOrDefer(). | 1699 // Use DetachRoute because it unconditionally calls RunOrDefer(). |
1708 media_router_->DetachRoute(kRouteId); | 1700 media_router_->DetachRoute(kRouteId); |
1709 run_loop4.Run(); | 1701 run_loop4.Run(); |
1710 | 1702 |
1711 base::RunLoop run_loop5; | 1703 base::RunLoop run_loop5; |
1712 base::RunLoop run_loop6; | 1704 base::RunLoop run_loop6; |
1713 // RegisterMediaRouteProvider() is called. | 1705 // RegisterMediaRouteProvider() is called. |
1714 // The queued DetachRoute(kRouteId) call should be executed. | 1706 // The queued DetachRoute(kRouteId) call should be executed. |
1715 EXPECT_CALL(provide_handler_, Invoke(testing::Not(""))) | 1707 EXPECT_CALL(provide_handler_, InvokeInternal(testing::Not(""), _)) |
1716 .WillOnce(InvokeWithoutArgs([&run_loop5]() { | 1708 .WillOnce(InvokeWithoutArgs([&run_loop5]() { run_loop5.Quit(); })); |
1717 run_loop5.Quit(); | |
1718 })); | |
1719 EXPECT_CALL(*process_manager_, IsEventPageSuspended(extension_->id())) | 1709 EXPECT_CALL(*process_manager_, IsEventPageSuspended(extension_->id())) |
1720 .WillOnce(Return(false)).WillOnce(Return(false)); | 1710 .WillOnce(Return(false)).WillOnce(Return(false)); |
1721 // Expected because it was used to wake up the page. | 1711 // Expected because it was used to wake up the page. |
1722 EXPECT_CALL(mock_media_route_provider_, DetachRoute(kRouteId)); | 1712 EXPECT_CALL(mock_media_route_provider_, DetachRoute(kRouteId)); |
1723 EXPECT_CALL(mock_media_route_provider_, | 1713 EXPECT_CALL(mock_media_route_provider_, |
1724 UpdateMediaSinks(MediaSourceForDesktop().id())); | 1714 UpdateMediaSinks(MediaSourceForDesktop().id())); |
1725 // EnableMdnsDiscovery() is never called except on Windows. | 1715 // EnableMdnsDiscovery() is never called except on Windows. |
1726 EXPECT_CALL(mock_media_route_provider_, EnableMdnsDiscovery()) | 1716 EXPECT_CALL(mock_media_route_provider_, EnableMdnsDiscovery()) |
1727 .WillOnce(InvokeWithoutArgs([&run_loop6]() { | 1717 .WillOnce(InvokeWithoutArgs([&run_loop6]() { |
1728 run_loop6.Quit(); | 1718 run_loop6.Quit(); |
1729 })); | 1719 })); |
1730 BindMediaRouteProvider(); | 1720 BindMediaRouteProvider(); |
1731 RegisterMediaRouteProvider(); | 1721 RegisterMediaRouteProvider(); |
1732 run_loop5.Run(); | 1722 run_loop5.Run(); |
1733 run_loop6.Run(); | 1723 run_loop6.Run(); |
1734 // Should not call EnableMdnsDiscovery, but will call UpdateMediaSinks | 1724 // Should not call EnableMdnsDiscovery, but will call UpdateMediaSinks |
1735 media_router_->OnUserGesture(); | 1725 media_router_->OnUserGesture(); |
1736 base::RunLoop run_loop7; | 1726 base::RunLoop run_loop7; |
1737 run_loop7.RunUntilIdle(); | 1727 run_loop7.RunUntilIdle(); |
1738 } | 1728 } |
1739 #endif | 1729 #endif |
1740 | 1730 |
1741 TEST_F(MediaRouterMojoExtensionTest, UpdateMediaSinksOnUserGesture) { | 1731 TEST_F(MediaRouterMojoExtensionTest, UpdateMediaSinksOnUserGesture) { |
1742 BindMediaRouteProvider(); | 1732 BindMediaRouteProvider(); |
1743 | 1733 |
1744 base::RunLoop run_loop; | 1734 base::RunLoop run_loop; |
1745 EXPECT_CALL(provide_handler_, Invoke(testing::Not(""))) | 1735 EXPECT_CALL(provide_handler_, InvokeInternal(testing::Not(""), _)) |
1746 .WillOnce(InvokeWithoutArgs([&run_loop]() { | 1736 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); |
1747 run_loop.Quit(); | |
1748 })); | |
1749 EXPECT_CALL(*process_manager_, IsEventPageSuspended(extension_->id())) | 1737 EXPECT_CALL(*process_manager_, IsEventPageSuspended(extension_->id())) |
1750 #if defined(OS_WIN) | 1738 #if defined(OS_WIN) |
1751 // Windows calls once for EnableMdnsDiscovery | 1739 // Windows calls once for EnableMdnsDiscovery |
1752 .Times(3) | 1740 .Times(3) |
1753 #else | 1741 #else |
1754 // All others call once for registration, and once for the user gesture. | 1742 // All others call once for registration, and once for the user gesture. |
1755 .Times(2) | 1743 .Times(2) |
1756 #endif | 1744 #endif |
1757 .WillRepeatedly(Return(false)); | 1745 .WillRepeatedly(Return(false)); |
1758 | 1746 |
(...skipping 19 matching lines...) Expand all Loading... |
1778 | 1766 |
1779 TEST_F(MediaRouterMojoExtensionTest, SyncStateToMediaRouteProvider) { | 1767 TEST_F(MediaRouterMojoExtensionTest, SyncStateToMediaRouteProvider) { |
1780 EXPECT_CALL(*process_manager_, IsEventPageSuspended(extension_->id())) | 1768 EXPECT_CALL(*process_manager_, IsEventPageSuspended(extension_->id())) |
1781 .WillRepeatedly(Return(false)); | 1769 .WillRepeatedly(Return(false)); |
1782 MediaSource media_source = MediaSource(kSource); | 1770 MediaSource media_source = MediaSource(kSource); |
1783 std::unique_ptr<MockMediaSinksObserver> sinks_observer; | 1771 std::unique_ptr<MockMediaSinksObserver> sinks_observer; |
1784 std::unique_ptr<MockMediaRoutesObserver> routes_observer; | 1772 std::unique_ptr<MockMediaRoutesObserver> routes_observer; |
1785 std::unique_ptr<NullMessageObserver> messages_observer; | 1773 std::unique_ptr<NullMessageObserver> messages_observer; |
1786 | 1774 |
1787 { | 1775 { |
1788 EXPECT_CALL(provide_handler_, Invoke(testing::Not(""))); | 1776 EXPECT_CALL(provide_handler_, InvokeInternal(testing::Not(""), _)); |
1789 BindMediaRouteProvider(); | 1777 BindMediaRouteProvider(); |
1790 RegisterMediaRouteProvider(); | 1778 RegisterMediaRouteProvider(); |
1791 base::RunLoop().RunUntilIdle(); | 1779 base::RunLoop().RunUntilIdle(); |
1792 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&provide_handler_)); | 1780 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&provide_handler_)); |
1793 } | 1781 } |
1794 | 1782 |
1795 { | 1783 { |
1796 media_router_->OnSinkAvailabilityUpdated( | 1784 media_router_->OnSinkAvailabilityUpdated( |
1797 mojom::MediaRouter::SinkAvailability::PER_SOURCE); | 1785 mojom::MediaRouter::SinkAvailability::PER_SOURCE); |
1798 EXPECT_CALL(mock_media_route_provider_, | 1786 EXPECT_CALL(mock_media_route_provider_, |
1799 StartObservingMediaSinks(media_source.id())); | 1787 StartObservingMediaSinks(media_source.id())); |
1800 sinks_observer.reset(new MockMediaSinksObserver( | 1788 sinks_observer.reset(new MockMediaSinksObserver( |
1801 router(), media_source, url::Origin(GURL(kOrigin)))); | 1789 router(), media_source, url::Origin(GURL(kOrigin)))); |
1802 EXPECT_TRUE(sinks_observer->Init()); | 1790 EXPECT_TRUE(sinks_observer->Init()); |
1803 | 1791 |
1804 EXPECT_CALL(mock_media_route_provider_, | 1792 EXPECT_CALL(mock_media_route_provider_, |
1805 StartObservingMediaRoutes(media_source.id())); | 1793 StartObservingMediaRoutes(media_source.id())); |
1806 routes_observer.reset( | 1794 routes_observer.reset( |
1807 new MockMediaRoutesObserver(router(), media_source.id())); | 1795 new MockMediaRoutesObserver(router(), media_source.id())); |
1808 | 1796 |
1809 EXPECT_CALL(mock_media_route_provider_, | 1797 EXPECT_CALL(mock_media_route_provider_, |
1810 StartListeningForRouteMessages(media_source.id())); | 1798 StartListeningForRouteMessages(media_source.id())); |
1811 messages_observer.reset( | 1799 messages_observer.reset( |
1812 new NullMessageObserver(router(), media_source.id())); | 1800 new NullMessageObserver(router(), media_source.id())); |
1813 base::RunLoop().RunUntilIdle(); | 1801 base::RunLoop().RunUntilIdle(); |
1814 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&mock_media_route_provider_)); | 1802 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&mock_media_route_provider_)); |
1815 } | 1803 } |
1816 | 1804 |
1817 { | 1805 { |
1818 EXPECT_CALL(provide_handler_, Invoke(testing::Not(""))); | 1806 EXPECT_CALL(provide_handler_, InvokeInternal(testing::Not(""), _)); |
1819 EXPECT_CALL(mock_media_route_provider_, | 1807 EXPECT_CALL(mock_media_route_provider_, |
1820 StartObservingMediaSinks(media_source.id())); | 1808 StartObservingMediaSinks(media_source.id())); |
1821 EXPECT_CALL(mock_media_route_provider_, | 1809 EXPECT_CALL(mock_media_route_provider_, |
1822 StartObservingMediaRoutes(media_source.id())); | 1810 StartObservingMediaRoutes(media_source.id())); |
1823 EXPECT_CALL(mock_media_route_provider_, | 1811 EXPECT_CALL(mock_media_route_provider_, |
1824 StartListeningForRouteMessages(media_source.id())); | 1812 StartListeningForRouteMessages(media_source.id())); |
1825 media_router_->OnConnectionError(); | 1813 media_router_->OnConnectionError(); |
1826 BindMediaRouteProvider(); | 1814 BindMediaRouteProvider(); |
1827 RegisterMediaRouteProvider(); | 1815 RegisterMediaRouteProvider(); |
1828 base::RunLoop().RunUntilIdle(); | 1816 base::RunLoop().RunUntilIdle(); |
1829 } | 1817 } |
1830 } | 1818 } |
1831 | 1819 |
1832 } // namespace media_router | 1820 } // namespace media_router |
OLD | NEW |