diff options
Diffstat (limited to 'chromium/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc')
-rw-r--r-- | chromium/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc | 78 |
1 files changed, 60 insertions, 18 deletions
diff --git a/chromium/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc b/chromium/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc index bff55c618cc..4529b4999d9 100644 --- a/chromium/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc +++ b/chromium/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc @@ -13,6 +13,7 @@ #include "ui/gfx/rect.h" using testing::_; +using testing::Return; using testing::SaveArg; namespace content { @@ -38,18 +39,20 @@ class MockRenderViewHostDelegate : public RenderViewHostDelegate { class MockResponseCallback { public: - MOCK_METHOD1(OnAccessRequestResponse, - void(const MediaStreamDevices& devices)); + MOCK_METHOD2(OnAccessRequestResponse, + void(const MediaStreamDevices& devices, + content::MediaStreamRequestResult result)); }; class MockMediaStreamUI : public MediaStreamUI { public: - MOCK_METHOD1(OnStarted, void(const base::Closure& stop)); + MOCK_METHOD1(OnStarted, gfx::NativeViewId(const base::Closure& stop)); }; class MockStopStreamHandler { public: MOCK_METHOD0(OnStop, void()); + MOCK_METHOD1(OnWindowId, void(gfx::NativeViewId window_id)); }; @@ -92,7 +95,7 @@ MATCHER_P(SameRequest, expected, "") { } TEST_F(MediaStreamUIProxyTest, Deny) { - MediaStreamRequest request(0, 0, 0, GURL("http://origin/"), + MediaStreamRequest request(0, 0, 0, GURL("http://origin/"), false, MEDIA_GENERATE_STREAM, std::string(), std::string(), MEDIA_DEVICE_AUDIO_CAPTURE, @@ -107,10 +110,10 @@ TEST_F(MediaStreamUIProxyTest, Deny) { ASSERT_FALSE(callback.is_null()); MediaStreamDevices devices; - callback.Run(devices, scoped_ptr<MediaStreamUI>()); + callback.Run(devices, MEDIA_DEVICE_OK, scoped_ptr<MediaStreamUI>()); MediaStreamDevices response; - EXPECT_CALL(response_callback_, OnAccessRequestResponse(_)) + EXPECT_CALL(response_callback_, OnAccessRequestResponse(_, _)) .WillOnce(SaveArg<0>(&response)); message_loop_.RunUntilIdle(); @@ -118,7 +121,7 @@ TEST_F(MediaStreamUIProxyTest, Deny) { } TEST_F(MediaStreamUIProxyTest, AcceptAndStart) { - MediaStreamRequest request(0, 0, 0, GURL("http://origin/"), + MediaStreamRequest request(0, 0, 0, GURL("http://origin/"), false, MEDIA_GENERATE_STREAM, std::string(), std::string(), MEDIA_DEVICE_AUDIO_CAPTURE, @@ -136,23 +139,23 @@ TEST_F(MediaStreamUIProxyTest, AcceptAndStart) { devices.push_back( MediaStreamDevice(MEDIA_DEVICE_AUDIO_CAPTURE, "Mic", "Mic")); scoped_ptr<MockMediaStreamUI> ui(new MockMediaStreamUI()); - EXPECT_CALL(*ui, OnStarted(_)); - callback.Run(devices, ui.PassAs<MediaStreamUI>()); + EXPECT_CALL(*ui, OnStarted(_)).WillOnce(Return(0)); + callback.Run(devices, MEDIA_DEVICE_OK, ui.PassAs<MediaStreamUI>()); MediaStreamDevices response; - EXPECT_CALL(response_callback_, OnAccessRequestResponse(_)) + EXPECT_CALL(response_callback_, OnAccessRequestResponse(_, _)) .WillOnce(SaveArg<0>(&response)); message_loop_.RunUntilIdle(); EXPECT_FALSE(response.empty()); - proxy_->OnStarted(base::Closure()); + proxy_->OnStarted(base::Closure(), MediaStreamUIProxy::WindowIdCallback()); message_loop_.RunUntilIdle(); } // Verify that the proxy can be deleted before the request is processed. TEST_F(MediaStreamUIProxyTest, DeleteBeforeAccepted) { - MediaStreamRequest request(0, 0, 0, GURL("http://origin/"), + MediaStreamRequest request(0, 0, 0, GURL("http://origin/"), false, MEDIA_GENERATE_STREAM, std::string(), std::string(), MEDIA_DEVICE_AUDIO_CAPTURE, @@ -170,11 +173,11 @@ TEST_F(MediaStreamUIProxyTest, DeleteBeforeAccepted) { MediaStreamDevices devices; scoped_ptr<MediaStreamUI> ui; - callback.Run(devices, ui.Pass()); + callback.Run(devices, MEDIA_DEVICE_OK, ui.Pass()); } TEST_F(MediaStreamUIProxyTest, StopFromUI) { - MediaStreamRequest request(0, 0, 0, GURL("http://origin/"), + MediaStreamRequest request(0, 0, 0, GURL("http://origin/"), false, MEDIA_GENERATE_STREAM, std::string(), std::string(), MEDIA_DEVICE_AUDIO_CAPTURE, @@ -195,11 +198,11 @@ TEST_F(MediaStreamUIProxyTest, StopFromUI) { MediaStreamDevice(MEDIA_DEVICE_AUDIO_CAPTURE, "Mic", "Mic")); scoped_ptr<MockMediaStreamUI> ui(new MockMediaStreamUI()); EXPECT_CALL(*ui, OnStarted(_)) - .WillOnce(SaveArg<0>(&stop_callback)); - callback.Run(devices, ui.PassAs<MediaStreamUI>()); + .WillOnce(testing::DoAll(SaveArg<0>(&stop_callback), Return(0))); + callback.Run(devices, MEDIA_DEVICE_OK, ui.PassAs<MediaStreamUI>()); MediaStreamDevices response; - EXPECT_CALL(response_callback_, OnAccessRequestResponse(_)) + EXPECT_CALL(response_callback_, OnAccessRequestResponse(_, _)) .WillOnce(SaveArg<0>(&response)); message_loop_.RunUntilIdle(); @@ -207,7 +210,8 @@ TEST_F(MediaStreamUIProxyTest, StopFromUI) { MockStopStreamHandler stop_handler; proxy_->OnStarted(base::Bind(&MockStopStreamHandler::OnStop, - base::Unretained(&stop_handler))); + base::Unretained(&stop_handler)), + MediaStreamUIProxy::WindowIdCallback()); message_loop_.RunUntilIdle(); ASSERT_FALSE(stop_callback.is_null()); @@ -216,4 +220,42 @@ TEST_F(MediaStreamUIProxyTest, StopFromUI) { message_loop_.RunUntilIdle(); } +TEST_F(MediaStreamUIProxyTest, WindowIdCallbackCalled) { + MediaStreamRequest request(0, + 0, + 0, + GURL("http://origin/"), + false, + MEDIA_GENERATE_STREAM, + std::string(), + std::string(), + MEDIA_NO_SERVICE, + MEDIA_DESKTOP_VIDEO_CAPTURE); + proxy_->RequestAccess( + request, + base::Bind(&MockResponseCallback::OnAccessRequestResponse, + base::Unretained(&response_callback_))); + MediaResponseCallback callback; + EXPECT_CALL(delegate_, RequestMediaAccessPermission(SameRequest(request), _)) + .WillOnce(SaveArg<1>(&callback)); + message_loop_.RunUntilIdle(); + + const int kWindowId = 1; + scoped_ptr<MockMediaStreamUI> ui(new MockMediaStreamUI()); + EXPECT_CALL(*ui, OnStarted(_)).WillOnce(Return(kWindowId)); + + callback.Run( + MediaStreamDevices(), MEDIA_DEVICE_OK, ui.PassAs<MediaStreamUI>()); + EXPECT_CALL(response_callback_, OnAccessRequestResponse(_, _)); + + MockStopStreamHandler handler; + EXPECT_CALL(handler, OnWindowId(kWindowId)); + + proxy_->OnStarted( + base::Bind(&MockStopStreamHandler::OnStop, base::Unretained(&handler)), + base::Bind(&MockStopStreamHandler::OnWindowId, + base::Unretained(&handler))); + message_loop_.RunUntilIdle(); +} + } // content |