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

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

Issue 1430413003: [Media Router] Connection state change listening redesign part 2. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix content_unittests compile Created 5 years, 1 month 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 723 matching lines...) Expand 10 before | Expand all | Expand 10 after
734 new PresentationSessionMessagesObserver( 734 new PresentationSessionMessagesObserver(
735 base::Bind(&ListenForMessagesCallbackHandler::Invoke, 735 base::Bind(&ListenForMessagesCallbackHandler::Invoke,
736 base::Unretained(&handler)), 736 base::Unretained(&handler)),
737 expected_route_id, router())); 737 expected_route_id, router()));
738 ProcessEventLoop(); 738 ProcessEventLoop();
739 739
740 mojo_callback.Run(mojo::Array<interfaces::RouteMessagePtr>(0), true); 740 mojo_callback.Run(mojo::Array<interfaces::RouteMessagePtr>(0), true);
741 ProcessEventLoop(); 741 ProcessEventLoop();
742 } 742 }
743 743
744 TEST_F(MediaRouterMojoImplTest, PresentationConnectionStateObserver) { 744 TEST_F(MediaRouterMojoImplTest, PresentationConnectionStateChangedCallback) {
745 using PresentationConnectionState = 745 using PresentationConnectionState =
746 interfaces::MediaRouter::PresentationConnectionState; 746 interfaces::MediaRouter::PresentationConnectionState;
747 747
748 MediaRoute::Id route_id("route-id"); 748 MediaRoute::Id route_id("route-id");
749 MockPresentationConnectionStateObserver observer(router(), route_id); 749 const std::string kPresentationUrl("http://foo.fakeUrl");
750 const std::string kPresentationId("pid");
751 content::PresentationSessionInfo connection(kPresentationUrl,
752 kPresentationId);
753 MockPresentationConnectionStateChangedCallback callback;
754 scoped_ptr<PresentationConnectionStateSubscription> subscription =
755 router()->AddPresentationConnectionStateChangedCallback(
756 route_id,
757 base::Bind(&MockPresentationConnectionStateChangedCallback::Run,
758 base::Unretained(&callback)));
750 759
751 EXPECT_CALL(observer, 760 EXPECT_CALL(callback, Run(content::PRESENTATION_CONNECTION_STATE_CLOSED))
752 OnStateChanged(content::PRESENTATION_CONNECTION_STATE_CLOSED)); 761 .Times(1);
753 media_router_proxy_->OnPresentationConnectionStateChanged( 762 media_router_proxy_->OnPresentationConnectionStateChanged(
754 route_id, 763 route_id,
755 PresentationConnectionState::PRESENTATION_CONNECTION_STATE_CLOSED); 764 PresentationConnectionState::PRESENTATION_CONNECTION_STATE_CLOSED);
756 ProcessEventLoop(); 765 ProcessEventLoop();
757 766
758 EXPECT_CALL(observer, OnStateChanged( 767 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&callback));
759 content::PRESENTATION_CONNECTION_STATE_TERMINATED)); 768
769 // Right now we don't keep track of previous state so the callback will be
770 // invoked with the same state again.
771 EXPECT_CALL(callback, Run(content::PRESENTATION_CONNECTION_STATE_CLOSED))
772 .Times(1);
760 media_router_proxy_->OnPresentationConnectionStateChanged( 773 media_router_proxy_->OnPresentationConnectionStateChanged(
761 route_id, 774 route_id,
762 PresentationConnectionState::PRESENTATION_CONNECTION_STATE_TERMINATED); 775 PresentationConnectionState::PRESENTATION_CONNECTION_STATE_CLOSED);
776 ProcessEventLoop();
777
778 // Callback has been removed, so we don't expect it to be called anymore.
779 subscription.reset();
780 EXPECT_CALL(callback, Run(content::PRESENTATION_CONNECTION_STATE_CLOSED))
781 .Times(0);
782 media_router_proxy_->OnPresentationConnectionStateChanged(
783 route_id,
784 PresentationConnectionState::PRESENTATION_CONNECTION_STATE_CLOSED);
763 ProcessEventLoop(); 785 ProcessEventLoop();
mark a. foltz 2015/11/18 00:39:38 Is there test coverage for the removal callback?
imcheng 2015/11/19 23:39:53 Added assertion that the CallbackList entry is rem
764 } 786 }
765 787
766 TEST_F(MediaRouterMojoImplTest, HasLocalRoute) { 788 TEST_F(MediaRouterMojoImplTest, HasLocalRoute) {
767 EXPECT_FALSE(router()->HasLocalDisplayRoute()); 789 EXPECT_FALSE(router()->HasLocalDisplayRoute());
768 interfaces::MediaRoutePtr mojo_route1 = interfaces::MediaRoute::New(); 790 interfaces::MediaRoutePtr mojo_route1 = interfaces::MediaRoute::New();
769 mojo_route1->media_route_id = "routeId1"; 791 mojo_route1->media_route_id = "routeId1";
770 mojo_route1->media_sink_id = "sinkId"; 792 mojo_route1->media_sink_id = "sinkId";
771 mojo_route1->is_local = false; 793 mojo_route1->is_local = false;
772 mojo_route1->for_display = false; 794 mojo_route1->for_display = false;
773 router()->RouteResponseReceived("presentationId1", 795 router()->RouteResponseReceived("presentationId1",
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
1021 EXPECT_CALL(provide_handler_, Invoke(testing::Not(""))); 1043 EXPECT_CALL(provide_handler_, Invoke(testing::Not("")));
1022 EXPECT_CALL(*process_manager_, IsEventPageSuspended(kExtensionId)) 1044 EXPECT_CALL(*process_manager_, IsEventPageSuspended(kExtensionId))
1023 .WillOnce(Return(false)); 1045 .WillOnce(Return(false));
1024 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId2))) 1046 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId2)))
1025 .Times(kMaxPendingRequests); 1047 .Times(kMaxPendingRequests);
1026 RegisterMediaRouteProvider(); 1048 RegisterMediaRouteProvider();
1027 ProcessEventLoop(); 1049 ProcessEventLoop();
1028 } 1050 }
1029 1051
1030 } // namespace media_router 1052 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698