| Index: chrome/browser/media/router/media_router_base_unittest.cc
|
| diff --git a/chrome/browser/media/router/media_router_base_unittest.cc b/chrome/browser/media/router/media_router_base_unittest.cc
|
| index 2003585620b9635e96caf56faae0cd652606ff66..1a25c04d91824fe181f4108507ad0796737fd9bf 100644
|
| --- a/chrome/browser/media/router/media_router_base_unittest.cc
|
| +++ b/chrome/browser/media/router/media_router_base_unittest.cc
|
| @@ -102,4 +102,66 @@ TEST(MediaRouterBaseTest, NotifyCallbacks) {
|
| router.Shutdown();
|
| }
|
|
|
| +TEST(MediaRouterBaseTest, NotifyCallbacksPendingStateChange) {
|
| + content::TestBrowserThreadBundle thread_bundle_;
|
| + MockMediaRouterBase router;
|
| + router.Initialize();
|
| +
|
| + MediaRoute::Id route_id1("id1");
|
| + MediaRoute::Id route_id2("id2");
|
| + MockPresentationConnectionStateChangedCallback callback1;
|
| + MockPresentationConnectionStateChangedCallback callback2;
|
| +
|
| + content::PresentationConnectionStateChangeInfo change_info_connected(
|
| + content::PRESENTATION_CONNECTION_STATE_CONNECTED);
|
| + content::PresentationConnectionStateChangeInfo change_info_terminated(
|
| + content::PRESENTATION_CONNECTION_STATE_TERMINATED);
|
| + content::PresentationConnectionStateChangeInfo change_info_closed(
|
| + content::PRESENTATION_CONNECTION_STATE_CLOSED);
|
| + change_info_closed.close_reason =
|
| + content::PRESENTATION_CONNECTION_CLOSE_REASON_WENT_AWAY;
|
| + change_info_closed.message = "Test message";
|
| +
|
| + EXPECT_CALL(callback1, Run(StateChangeInfoEquals(change_info_connected)))
|
| + .Times(0);
|
| + router.NotifyPresentationConnectionStateChange(
|
| + route_id1, content::PRESENTATION_CONNECTION_STATE_CONNECTED);
|
| +
|
| + EXPECT_CALL(callback2, Run(StateChangeInfoEquals(change_info_connected)))
|
| + .Times(0);
|
| + router.NotifyPresentationConnectionStateChange(
|
| + route_id2, content::PRESENTATION_CONNECTION_STATE_CONNECTED);
|
| +
|
| + EXPECT_CALL(callback1, Run(StateChangeInfoEquals(change_info_closed)))
|
| + .Times(0);
|
| + router.NotifyPresentationConnectionClose(
|
| + route_id1, change_info_closed.close_reason, change_info_closed.message);
|
| +
|
| + EXPECT_EQ(size_t(2), router.queued_state_changes_.size());
|
| +
|
| + EXPECT_CALL(callback1, Run(StateChangeInfoEquals(change_info_connected)))
|
| + .Times(0);
|
| + EXPECT_CALL(callback1, Run(StateChangeInfoEquals(change_info_closed)));
|
| + std::unique_ptr<PresentationConnectionStateSubscription> subscription1 =
|
| + router.AddPresentationConnectionStateChangedCallback(
|
| + route_id1,
|
| + base::Bind(&MockPresentationConnectionStateChangedCallback::Run,
|
| + base::Unretained(&callback1)));
|
| +
|
| + EXPECT_CALL(callback2, Run(StateChangeInfoEquals(change_info_connected)));
|
| + std::unique_ptr<PresentationConnectionStateSubscription> subscription2 =
|
| + router.AddPresentationConnectionStateChangedCallback(
|
| + route_id2,
|
| + base::Bind(&MockPresentationConnectionStateChangedCallback::Run,
|
| + base::Unretained(&callback2)));
|
| +
|
| + EXPECT_CALL(callback1, Run(StateChangeInfoEquals(change_info_terminated)));
|
| + router.NotifyPresentationConnectionStateChange(
|
| + route_id1, content::PRESENTATION_CONNECTION_STATE_TERMINATED);
|
| +
|
| + EXPECT_EQ(size_t(0), router.queued_state_changes_.size());
|
| +
|
| + router.Shutdown();
|
| +}
|
| +
|
| } // namespace media_router
|
|
|