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

Side by Side Diff: content/browser/media/capture/screen_capture_device_android_unittest.cc

Issue 2673373003: getUserMeida: report device starting states (Closed)
Patch Set: address comments on PS#4 and revise unittests Created 3 years, 10 months 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "content/browser/media/capture/screen_capture_device_android.h" 5 #include "content/browser/media/capture/screen_capture_device_android.h"
6 6
7 #include "base/memory/ptr_util.h" 7 #include "base/memory/ptr_util.h"
8 #include "testing/gmock/include/gmock/gmock.h" 8 #include "testing/gmock/include/gmock/gmock.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
11 using ::testing::_; 11 using ::testing::_;
12 using ::testing::AtMost;
12 13
13 namespace content { 14 namespace content {
14 namespace { 15 namespace {
15 16
16 const int kFrameRate = 30; 17 const int kFrameRate = 30;
17 18
18 class MockDeviceClient : public media::VideoCaptureDevice::Client { 19 class MockDeviceClient : public media::VideoCaptureDevice::Client {
19 public: 20 public:
20 MOCK_METHOD7(OnIncomingCapturedData, 21 MOCK_METHOD7(OnIncomingCapturedData,
21 void(const uint8_t* data, 22 void(const uint8_t* data,
22 int length, 23 int length,
23 const media::VideoCaptureFormat& frame_format, 24 const media::VideoCaptureFormat& frame_format,
24 int rotation, 25 int rotation,
25 base::TimeTicks reference_time, 26 base::TimeTicks reference_time,
26 base::TimeDelta tiemstamp, 27 base::TimeDelta tiemstamp,
27 int frame_feedback_id)); 28 int frame_feedback_id));
28 MOCK_METHOD0(DoReserveOutputBuffer, void(void)); 29 MOCK_METHOD0(DoReserveOutputBuffer, void(void));
29 MOCK_METHOD0(DoOnIncomingCapturedBuffer, void(void)); 30 MOCK_METHOD0(DoOnIncomingCapturedBuffer, void(void));
30 MOCK_METHOD0(DoOnIncomingCapturedVideoFrame, void(void)); 31 MOCK_METHOD0(DoOnIncomingCapturedVideoFrame, void(void));
31 MOCK_METHOD0(DoResurrectLastOutputBuffer, void(void)); 32 MOCK_METHOD0(DoResurrectLastOutputBuffer, void(void));
32 MOCK_METHOD2(OnError, 33 MOCK_METHOD2(OnError,
33 void(const tracked_objects::Location& from_here, 34 void(const tracked_objects::Location& from_here,
34 const std::string& reason)); 35 const std::string& reason));
35 MOCK_CONST_METHOD0(GetBufferPoolUtilization, double(void)); 36 MOCK_CONST_METHOD0(GetBufferPoolUtilization, double(void));
37 MOCK_METHOD0(OnStarted, void(void));
36 38
37 // Trampoline methods to workaround GMOCK problems with std::unique_ptr<>. 39 // Trampoline methods to workaround GMOCK problems with std::unique_ptr<>.
38 Buffer ReserveOutputBuffer(const gfx::Size& dimensions, 40 Buffer ReserveOutputBuffer(const gfx::Size& dimensions,
39 media::VideoPixelFormat format, 41 media::VideoPixelFormat format,
40 media::VideoPixelStorage storage, 42 media::VideoPixelStorage storage,
41 int frame_feedback_id) override { 43 int frame_feedback_id) override {
42 EXPECT_EQ(media::PIXEL_FORMAT_I420, format); 44 EXPECT_EQ(media::PIXEL_FORMAT_I420, format);
43 EXPECT_EQ(media::PIXEL_STORAGE_CPU, storage); 45 EXPECT_EQ(media::PIXEL_STORAGE_CPU, storage);
44 DoReserveOutputBuffer(); 46 DoReserveOutputBuffer();
45 return Buffer(); 47 return Buffer();
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 87
86 // Place holder. Currently user input result is required to start 88 // Place holder. Currently user input result is required to start
87 // MediaProjection, so we can't start a unittest that really starts capture. 89 // MediaProjection, so we can't start a unittest that really starts capture.
88 TEST_F(ScreenCaptureDeviceAndroidTest, DISABLED_StartAndStop) { 90 TEST_F(ScreenCaptureDeviceAndroidTest, DISABLED_StartAndStop) {
89 std::unique_ptr<media::VideoCaptureDevice> capture_device = 91 std::unique_ptr<media::VideoCaptureDevice> capture_device =
90 base::MakeUnique<ScreenCaptureDeviceAndroid>(); 92 base::MakeUnique<ScreenCaptureDeviceAndroid>();
91 ASSERT_TRUE(capture_device); 93 ASSERT_TRUE(capture_device);
92 94
93 std::unique_ptr<MockDeviceClient> client(new MockDeviceClient()); 95 std::unique_ptr<MockDeviceClient> client(new MockDeviceClient());
94 EXPECT_CALL(*client, OnError(_, _)).Times(0); 96 EXPECT_CALL(*client, OnError(_, _)).Times(0);
97 // |STARTED| is reported asynchronously, which may not be got if capture
98 // is stopped immediately.
99 EXPECT_CALL(*client, OnStarted()).Times(AtMost(1));
95 100
96 media::VideoCaptureParams capture_params; 101 media::VideoCaptureParams capture_params;
97 capture_params.requested_format.frame_size.SetSize(640, 480); 102 capture_params.requested_format.frame_size.SetSize(640, 480);
98 capture_params.requested_format.frame_rate = kFrameRate; 103 capture_params.requested_format.frame_rate = kFrameRate;
99 capture_params.requested_format.pixel_format = media::PIXEL_FORMAT_I420; 104 capture_params.requested_format.pixel_format = media::PIXEL_FORMAT_I420;
100 capture_device->AllocateAndStart(capture_params, std::move(client)); 105 capture_device->AllocateAndStart(capture_params, std::move(client));
101 capture_device->StopAndDeAllocate(); 106 capture_device->StopAndDeAllocate();
102 } 107 }
103 108
104 } // namespace 109 } // namespace
105 } // namespace Content 110 } // namespace Content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698