OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/desktop_capture_device.h" | 5 #include "content/browser/media/capture/desktop_capture_device.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/sequenced_task_runner.h" | 8 #include "base/sequenced_task_runner.h" |
9 #include "base/synchronization/waitable_event.h" | 9 #include "base/synchronization/waitable_event.h" |
10 #include "base/test/test_timeouts.h" | 10 #include "base/test/test_timeouts.h" |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 #if defined(USE_OZONE) | 150 #if defined(USE_OZONE) |
151 #define MAYBE_Capture DISABLED_Capture | 151 #define MAYBE_Capture DISABLED_Capture |
152 #else | 152 #else |
153 #define MAYBE_Capture Capture | 153 #define MAYBE_Capture Capture |
154 #endif | 154 #endif |
155 TEST_F(DesktopCaptureDeviceTest, MAYBE_Capture) { | 155 TEST_F(DesktopCaptureDeviceTest, MAYBE_Capture) { |
156 scoped_ptr<webrtc::DesktopCapturer> capturer( | 156 scoped_ptr<webrtc::DesktopCapturer> capturer( |
157 webrtc::ScreenCapturer::Create()); | 157 webrtc::ScreenCapturer::Create()); |
158 DesktopCaptureDevice capture_device( | 158 DesktopCaptureDevice capture_device( |
159 worker_pool_->GetSequencedTaskRunner(worker_pool_->GetSequenceToken()), | 159 worker_pool_->GetSequencedTaskRunner(worker_pool_->GetSequenceToken()), |
160 capturer.Pass()); | 160 capturer.Pass(), |
| 161 DesktopMediaID::TYPE_SCREEN); |
161 media::VideoCaptureFormat format; | 162 media::VideoCaptureFormat format; |
162 base::WaitableEvent done_event(false, false); | 163 base::WaitableEvent done_event(false, false); |
163 int frame_size; | 164 int frame_size; |
164 | 165 |
165 scoped_ptr<MockDeviceClient> client(new MockDeviceClient()); | 166 scoped_ptr<MockDeviceClient> client(new MockDeviceClient()); |
166 EXPECT_CALL(*client, OnError(_)).Times(0); | 167 EXPECT_CALL(*client, OnError(_)).Times(0); |
167 EXPECT_CALL(*client, OnIncomingCapturedData(_, _, _, _, _)).WillRepeatedly( | 168 EXPECT_CALL(*client, OnIncomingCapturedData(_, _, _, _, _)).WillRepeatedly( |
168 DoAll(SaveArg<1>(&frame_size), | 169 DoAll(SaveArg<1>(&frame_size), |
169 SaveArg<2>(&format), | 170 SaveArg<2>(&format), |
170 InvokeWithoutArgs(&done_event, &base::WaitableEvent::Signal))); | 171 InvokeWithoutArgs(&done_event, &base::WaitableEvent::Signal))); |
(...skipping 17 matching lines...) Expand all Loading... |
188 worker_pool_->FlushForTesting(); | 189 worker_pool_->FlushForTesting(); |
189 } | 190 } |
190 | 191 |
191 // Test that screen capturer behaves correctly if the source frame size changes | 192 // Test that screen capturer behaves correctly if the source frame size changes |
192 // but the caller cannot cope with variable resolution output. | 193 // but the caller cannot cope with variable resolution output. |
193 TEST_F(DesktopCaptureDeviceTest, ScreenResolutionChangeConstantResolution) { | 194 TEST_F(DesktopCaptureDeviceTest, ScreenResolutionChangeConstantResolution) { |
194 FakeScreenCapturer* mock_capturer = new FakeScreenCapturer(); | 195 FakeScreenCapturer* mock_capturer = new FakeScreenCapturer(); |
195 | 196 |
196 DesktopCaptureDevice capture_device( | 197 DesktopCaptureDevice capture_device( |
197 worker_pool_->GetSequencedTaskRunner(worker_pool_->GetSequenceToken()), | 198 worker_pool_->GetSequencedTaskRunner(worker_pool_->GetSequenceToken()), |
198 scoped_ptr<webrtc::DesktopCapturer>(mock_capturer)); | 199 scoped_ptr<webrtc::DesktopCapturer>(mock_capturer), |
| 200 DesktopMediaID::TYPE_SCREEN); |
199 | 201 |
200 media::VideoCaptureFormat format; | 202 media::VideoCaptureFormat format; |
201 base::WaitableEvent done_event(false, false); | 203 base::WaitableEvent done_event(false, false); |
202 int frame_size; | 204 int frame_size; |
203 | 205 |
204 scoped_ptr<MockDeviceClient> client(new MockDeviceClient()); | 206 scoped_ptr<MockDeviceClient> client(new MockDeviceClient()); |
205 EXPECT_CALL(*client, OnError(_)).Times(0); | 207 EXPECT_CALL(*client, OnError(_)).Times(0); |
206 EXPECT_CALL(*client, OnIncomingCapturedData(_, _, _, _, _)).WillRepeatedly( | 208 EXPECT_CALL(*client, OnIncomingCapturedData(_, _, _, _, _)).WillRepeatedly( |
207 DoAll(SaveArg<1>(&frame_size), | 209 DoAll(SaveArg<1>(&frame_size), |
208 SaveArg<2>(&format), | 210 SaveArg<2>(&format), |
(...skipping 26 matching lines...) Expand all Loading... |
235 worker_pool_->FlushForTesting(); | 237 worker_pool_->FlushForTesting(); |
236 } | 238 } |
237 | 239 |
238 // Test that screen capturer behaves correctly if the source frame size changes | 240 // Test that screen capturer behaves correctly if the source frame size changes |
239 // and the caller can cope with variable resolution output. | 241 // and the caller can cope with variable resolution output. |
240 TEST_F(DesktopCaptureDeviceTest, ScreenResolutionChangeVariableResolution) { | 242 TEST_F(DesktopCaptureDeviceTest, ScreenResolutionChangeVariableResolution) { |
241 FakeScreenCapturer* mock_capturer = new FakeScreenCapturer(); | 243 FakeScreenCapturer* mock_capturer = new FakeScreenCapturer(); |
242 | 244 |
243 DesktopCaptureDevice capture_device( | 245 DesktopCaptureDevice capture_device( |
244 worker_pool_->GetSequencedTaskRunner(worker_pool_->GetSequenceToken()), | 246 worker_pool_->GetSequencedTaskRunner(worker_pool_->GetSequenceToken()), |
245 scoped_ptr<webrtc::DesktopCapturer>(mock_capturer)); | 247 scoped_ptr<webrtc::DesktopCapturer>(mock_capturer), |
| 248 DesktopMediaID::TYPE_SCREEN); |
246 | 249 |
247 media::VideoCaptureFormat format; | 250 media::VideoCaptureFormat format; |
248 base::WaitableEvent done_event(false, false); | 251 base::WaitableEvent done_event(false, false); |
249 | 252 |
250 scoped_ptr<MockDeviceClient> client(new MockDeviceClient()); | 253 scoped_ptr<MockDeviceClient> client(new MockDeviceClient()); |
251 EXPECT_CALL(*client, OnError(_)).Times(0); | 254 EXPECT_CALL(*client, OnError(_)).Times(0); |
252 EXPECT_CALL(*client, OnIncomingCapturedData(_, _, _, _, _)).WillRepeatedly( | 255 EXPECT_CALL(*client, OnIncomingCapturedData(_, _, _, _, _)).WillRepeatedly( |
253 DoAll(SaveArg<2>(&format), | 256 DoAll(SaveArg<2>(&format), |
254 InvokeWithoutArgs(&done_event, &base::WaitableEvent::Signal))); | 257 InvokeWithoutArgs(&done_event, &base::WaitableEvent::Signal))); |
255 | 258 |
(...skipping 18 matching lines...) Expand all Loading... |
274 capture_device.StopAndDeAllocate(); | 277 capture_device.StopAndDeAllocate(); |
275 | 278 |
276 EXPECT_EQ(kTestFrameWidth1, format.frame_size.width()); | 279 EXPECT_EQ(kTestFrameWidth1, format.frame_size.width()); |
277 EXPECT_EQ(kTestFrameHeight1, format.frame_size.height()); | 280 EXPECT_EQ(kTestFrameHeight1, format.frame_size.height()); |
278 EXPECT_EQ(kFrameRate, format.frame_rate); | 281 EXPECT_EQ(kFrameRate, format.frame_rate); |
279 EXPECT_EQ(media::PIXEL_FORMAT_ARGB, format.pixel_format); | 282 EXPECT_EQ(media::PIXEL_FORMAT_ARGB, format.pixel_format); |
280 worker_pool_->FlushForTesting(); | 283 worker_pool_->FlushForTesting(); |
281 } | 284 } |
282 | 285 |
283 } // namespace content | 286 } // namespace content |
OLD | NEW |