Chromium Code Reviews| Index: content/browser/media/capture/web_contents_video_capture_device_unittest.cc |
| diff --git a/content/browser/media/capture/web_contents_video_capture_device_unittest.cc b/content/browser/media/capture/web_contents_video_capture_device_unittest.cc |
| index ca48ca4041122e033b3f03930ec48be51ded70ab..85b4f2dc8df42bb87e16e69336747f29fc31b943 100644 |
| --- a/content/browser/media/capture/web_contents_video_capture_device_unittest.cc |
| +++ b/content/browser/media/capture/web_contents_video_capture_device_unittest.cc |
| @@ -243,6 +243,7 @@ class StubClient : public media::VideoCaptureDevice::Client { |
| int frame_feedback_id)); |
| MOCK_METHOD0(DoOnIncomingCapturedBuffer, void(void)); |
| + MOCK_METHOD0(OnStarted, void(void)); |
| media::VideoCaptureDevice::Client::Buffer ReserveOutputBuffer( |
| const gfx::Size& dimensions, |
| @@ -346,9 +347,7 @@ class StubClientObserver { |
| virtual ~StubClientObserver() {} |
| - std::unique_ptr<media::VideoCaptureDevice::Client> PassClient() { |
| - return std::move(client_); |
| - } |
| + std::unique_ptr<StubClient> PassClient() { return std::move(client_); } |
| void SetIsExpectingFrames(bool expecting_frames) { |
| expecting_frames_ = expecting_frames; |
| @@ -636,8 +635,9 @@ class WebContentsVideoCaptureDeviceTest : public testing::Test { |
| TEST_F(WebContentsVideoCaptureDeviceTest, |
| SafelyStartsUpAfterWebContentsHasGone) { |
| ResetWebContents(); |
| - device()->AllocateAndStart(DefaultCaptureParams(), |
| - client_observer()->PassClient()); |
| + auto client = client_observer()->PassClient(); |
|
dcheng
2017/02/25 07:27:03
Nit: I don't find the return type particularly obv
braveyao
2017/02/27 23:18:53
auto is used a lot in this unittest. And in this c
|
| + EXPECT_CALL(*client, OnStarted()); |
| + device()->AllocateAndStart(DefaultCaptureParams(), std::move(client)); |
| ASSERT_NO_FATAL_FAILURE(client_observer()->WaitForError()); |
| device()->StopAndDeAllocate(); |
| } |
| @@ -649,8 +649,9 @@ TEST_F(WebContentsVideoCaptureDeviceTest, |
| RunsThenErrorsOutWhenWebContentsIsDestroyed) { |
| // We'll simulate the tab being closed after the capture pipeline is up and |
| // running. |
| - device()->AllocateAndStart(DefaultCaptureParams(), |
| - client_observer()->PassClient()); |
| + auto client = client_observer()->PassClient(); |
| + EXPECT_CALL(*client, OnStarted()); |
| + device()->AllocateAndStart(DefaultCaptureParams(), std::move(client)); |
| // Do one capture to prove the tab is initially open and being captured |
| // normally. |
| @@ -694,8 +695,9 @@ TEST_F(WebContentsVideoCaptureDeviceTest, |
| DeliversToCorrectClientAcrossRestarts) { |
| // While the device is up-and-running, expect frame captures. |
| client_observer()->SetIsExpectingFrames(true); |
| - device()->AllocateAndStart(DefaultCaptureParams(), |
| - client_observer()->PassClient()); |
| + auto client = client_observer()->PassClient(); |
| + EXPECT_CALL(*client, OnStarted()); |
| + device()->AllocateAndStart(DefaultCaptureParams(), std::move(client)); |
| base::RunLoop().RunUntilIdle(); |
| test_view()->SetSolidColor(SK_ColorRED); |
| SimulateDrawEvent(); |
| @@ -719,7 +721,9 @@ TEST_F(WebContentsVideoCaptureDeviceTest, |
| // expect to see any frame captures. |
| StubClientObserver observer2; |
| observer2.SetIsExpectingFrames(true); |
| - device()->AllocateAndStart(DefaultCaptureParams(), observer2.PassClient()); |
| + auto client2 = observer2.PassClient(); |
| + EXPECT_CALL(*client2, OnStarted()); |
| + device()->AllocateAndStart(DefaultCaptureParams(), std::move(client2)); |
| test_view()->SetSolidColor(SK_ColorBLUE); |
| SimulateDrawEvent(); |
| ASSERT_NO_FATAL_FAILURE(observer2.WaitForNextColor(SK_ColorBLUE)); |
| @@ -734,8 +738,9 @@ TEST_F(WebContentsVideoCaptureDeviceTest, |
| // consumer. The test will alternate between the RGB/SkBitmap and YUV/VideoFrame |
| // capture paths. |
| TEST_F(WebContentsVideoCaptureDeviceTest, GoesThroughAllTheMotions) { |
| - device()->AllocateAndStart(DefaultCaptureParams(), |
| - client_observer()->PassClient()); |
| + auto client = client_observer()->PassClient(); |
| + EXPECT_CALL(*client, OnStarted()); |
| + device()->AllocateAndStart(DefaultCaptureParams(), std::move(client)); |
| for (int i = 0; i < 3; i++) { |
| SCOPED_TRACE(base::StringPrintf("Iteration #%d", i)); |
| @@ -771,7 +776,9 @@ TEST_F(WebContentsVideoCaptureDeviceTest, VariableResolution_FixedAspectRatio) { |
| auto capture_params = DefaultCaptureParams(); |
| capture_params.resolution_change_policy = |
| media::RESOLUTION_POLICY_FIXED_ASPECT_RATIO; |
| - device()->AllocateAndStart(capture_params, client_observer()->PassClient()); |
| + auto client = client_observer()->PassClient(); |
| + EXPECT_CALL(*client, OnStarted()); |
| + device()->AllocateAndStart(capture_params, std::move(client)); |
| // Source size equals maximum size. Expect delivered frames to be |
| // kTestWidth by kTestHeight. |
| @@ -817,7 +824,9 @@ TEST_F(WebContentsVideoCaptureDeviceTest, VariableResolution_AnyWithinLimits) { |
| auto capture_params = DefaultCaptureParams(); |
| capture_params.resolution_change_policy = |
| media::RESOLUTION_POLICY_ANY_WITHIN_LIMIT; |
| - device()->AllocateAndStart(capture_params, client_observer()->PassClient()); |
| + auto client = client_observer()->PassClient(); |
| + EXPECT_CALL(*client, OnStarted()); |
| + device()->AllocateAndStart(capture_params, std::move(client)); |
| // Source size equals maximum size. Expect delivered frames to be |
| // kTestWidth by kTestHeight. |
| @@ -888,7 +897,9 @@ TEST_F(WebContentsVideoCaptureDeviceTest, |
| capture_params.requested_format.frame_size = oddball_size; |
| capture_params.resolution_change_policy = policy; |
| StubClientObserver unused_observer; |
| - device()->AllocateAndStart(capture_params, unused_observer.PassClient()); |
| + auto client = unused_observer.PassClient(); |
| + EXPECT_CALL(*client, OnStarted()); |
| + device()->AllocateAndStart(capture_params, std::move(client)); |
| base::RunLoop().RunUntilIdle(); |
| // Check that the preferred size of the WebContents matches the one provided |
| @@ -954,8 +965,9 @@ TEST_F(WebContentsVideoCaptureDeviceTest, |
| // Tests the Suspend/Resume() functionality. |
| TEST_F(WebContentsVideoCaptureDeviceTest, SuspendsAndResumes) { |
| - device()->AllocateAndStart(DefaultCaptureParams(), |
| - client_observer()->PassClient()); |
| + auto client = client_observer()->PassClient(); |
| + EXPECT_CALL(*client, OnStarted()); |
| + device()->AllocateAndStart(DefaultCaptureParams(), std::move(client)); |
| for (int i = 0; i < 3; ++i) { |
| // Draw a RED frame and wait for a normal frame capture to occur. |
| @@ -988,8 +1000,9 @@ TEST_F(WebContentsVideoCaptureDeviceTest, SuspendsAndResumes) { |
| // Tests the RequestRefreshFrame() functionality. |
| TEST_F(WebContentsVideoCaptureDeviceTest, ProvidesRefreshFrames) { |
| - device()->AllocateAndStart(DefaultCaptureParams(), |
| - client_observer()->PassClient()); |
| + auto client = client_observer()->PassClient(); |
| + EXPECT_CALL(*client, OnStarted()); |
| + device()->AllocateAndStart(DefaultCaptureParams(), std::move(client)); |
| // Request a refresh frame before the first frame has been drawn. This forces |
| // a capture. |