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

Unified Diff: chrome/browser/media/router/presentation_service_delegate_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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/router/presentation_service_delegate_impl_unittest.cc
diff --git a/chrome/browser/media/router/presentation_service_delegate_impl_unittest.cc b/chrome/browser/media/router/presentation_service_delegate_impl_unittest.cc
index c3099aa275a5fa1437808d4b883315795b15b95e..260ef430e9642deb96bf28735c216c658674e0bd 100644
--- a/chrome/browser/media/router/presentation_service_delegate_impl_unittest.cc
+++ b/chrome/browser/media/router/presentation_service_delegate_impl_unittest.cc
@@ -45,6 +45,14 @@ class MockDefaultPresentationRequestObserver
MOCK_METHOD0(OnDefaultPresentationRemoved, void());
};
+class MockCreatePresentationConnnectionCallbacks {
+ public:
+ MOCK_METHOD1(OnCreateConnectionSuccess,
+ void(const content::PresentationSessionInfo& connection));
+ MOCK_METHOD1(OnCreateConnectionError,
+ void(const content::PresentationError& error));
+};
+
class PresentationServiceDelegateImplTest
: public ChromeRenderViewHostTestHarness {
public:
@@ -125,7 +133,7 @@ TEST_F(PresentationServiceDelegateImplTest, AddSameListenerTwice) {
}
// TODO(imcheng): Add a test to set default presentation URL in a different
-// RenderFrameHost and verify that it works.
+// RenderFrameHost and verify that it is ignored.
TEST_F(PresentationServiceDelegateImplTest, SetDefaultPresentationUrl) {
EXPECT_FALSE(delegate_impl_->HasDefaultPresentationRequest());
@@ -258,6 +266,50 @@ TEST_F(PresentationServiceDelegateImplTest,
callback);
}
+TEST_F(PresentationServiceDelegateImplTest, ListenForConnnectionStateChange) {
+ GURL frame_url("http://www.google.com");
+ content::WebContentsTester::For(web_contents())->NavigateAndCommit(frame_url);
+ content::RenderFrameHost* main_frame = web_contents()->GetMainFrame();
+ ASSERT_TRUE(main_frame);
+ int render_process_id = main_frame->GetProcess()->GetID();
+ int routing_id = main_frame->GetRoutingID();
+
+ // Set up a PresentationConnection so we can listen to it.
+ std::vector<MediaRouteResponseCallback> route_response_callbacks;
+ EXPECT_CALL(router_, JoinRoute(_, _, _, _, _))
+ .WillOnce(SaveArg<4>(&route_response_callbacks));
+
+ const std::string kPresentationUrl("http://url1.fakeUrl");
+ const std::string kPresentationId("pid");
+ MockCreatePresentationConnnectionCallbacks mock_create_connection_callbacks;
+ delegate_impl_->JoinSession(
+ render_process_id, routing_id, kPresentationUrl, kPresentationId,
+ base::Bind(&MockCreatePresentationConnnectionCallbacks::
+ OnCreateConnectionSuccess,
+ base::Unretained(&mock_create_connection_callbacks)),
+ base::Bind(
+ &MockCreatePresentationConnnectionCallbacks::OnCreateConnectionError,
+ base::Unretained(&mock_create_connection_callbacks)));
+
+ EXPECT_CALL(mock_create_connection_callbacks, OnCreateConnectionSuccess(_))
+ .Times(1);
+ MediaRoute route("routeId", MediaSourceForPresentationUrl(kPresentationUrl),
+ "mediaSinkId", "description", true, "", true);
+ for (const auto& route_response_callback : route_response_callbacks)
+ route_response_callback.Run(&route, kPresentationId, "");
+
+ MockPresentationConnectionStateChangedCallback mock_callback;
+ content::PresentationConnectionStateChangedCallback callback =
mark a. foltz 2015/11/18 00:39:38 Consider adding a method to MPCSCC to get the boun
imcheng 2015/11/19 23:39:53 Since it's only used in one place, I would like to
+ base::Bind(&MockPresentationConnectionStateChangedCallback::Run,
+ base::Unretained(&mock_callback));
+ content::PresentationSessionInfo connection(kPresentationUrl,
+ kPresentationId);
+ EXPECT_CALL(router_, OnAddPresentationConnectionStateChangedCallbackInvoked(
mark a. foltz 2015/11/18 00:39:38 This is a little confusing, is there a way to set
imcheng 2015/11/19 23:39:53 Not possible at the moment, because the function h
+ Equals(callback)));
+ delegate_impl_->ListenForConnectionStateChange(render_process_id, routing_id,
+ connection, callback);
+}
+
TEST_F(PresentationServiceDelegateImplTest, Reset) {
ON_CALL(router_, RegisterMediaSinksObserver(_)).WillByDefault(Return(true));

Powered by Google App Engine
This is Rietveld 408576698