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

Side by Side Diff: content/browser/renderer_host/media/video_capture_manager_unittest.cc

Issue 2753073006: [Mojo Video Capture] Add support to BuildableVideoCaptureDevice for aborting the device start. (Closed)
Patch Set: Created 3 years, 9 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // Unit test for VideoCaptureManager. 5 // Unit test for VideoCaptureManager.
6 6
7 #include "content/browser/renderer_host/media/video_capture_manager.h" 7 #include "content/browser/renderer_host/media/video_capture_manager.h"
8 8
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 class MockMediaStreamProviderListener : public MediaStreamProviderListener { 139 class MockMediaStreamProviderListener : public MediaStreamProviderListener {
140 public: 140 public:
141 MockMediaStreamProviderListener() {} 141 MockMediaStreamProviderListener() {}
142 ~MockMediaStreamProviderListener() {} 142 ~MockMediaStreamProviderListener() {}
143 143
144 MOCK_METHOD2(Opened, void(MediaStreamType, int)); 144 MOCK_METHOD2(Opened, void(MediaStreamType, int));
145 MOCK_METHOD2(Closed, void(MediaStreamType, int)); 145 MOCK_METHOD2(Closed, void(MediaStreamType, int));
146 MOCK_METHOD2(Aborted, void(MediaStreamType, int)); 146 MOCK_METHOD2(Aborted, void(MediaStreamType, int));
147 }; // class MockMediaStreamProviderListener 147 }; // class MockMediaStreamProviderListener
148 148
149 // Needed as an input argument to StartCaptureForClient(). 149 // Needed as an input argument to ConnectClient().
150 class MockFrameObserver : public VideoCaptureControllerEventHandler { 150 class MockFrameObserver : public VideoCaptureControllerEventHandler {
151 public: 151 public:
152 MOCK_METHOD1(OnError, void(VideoCaptureControllerID id)); 152 MOCK_METHOD1(OnError, void(VideoCaptureControllerID id));
153 MOCK_METHOD1(OnStarted, void(VideoCaptureControllerID id)); 153 MOCK_METHOD1(OnStarted, void(VideoCaptureControllerID id));
154 MOCK_METHOD1(OnStartedUsingGpuDecode, void(VideoCaptureControllerID id)); 154 MOCK_METHOD1(OnStartedUsingGpuDecode, void(VideoCaptureControllerID id));
155 155
156 void OnBufferCreated(VideoCaptureControllerID id, 156 void OnBufferCreated(VideoCaptureControllerID id,
157 mojo::ScopedSharedBufferHandle handle, 157 mojo::ScopedSharedBufferHandle handle,
158 int length, int buffer_id) override {} 158 int length, int buffer_id) override {}
159 void OnBufferDestroyed(VideoCaptureControllerID id, int buffer_id) override {} 159 void OnBufferDestroyed(VideoCaptureControllerID id, int buffer_id) override {}
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 ASSERT_FALSE(controller); 230 ASSERT_FALSE(controller);
231 } 231 }
232 } 232 }
233 233
234 VideoCaptureControllerID StartClient(int session_id, bool expect_success) { 234 VideoCaptureControllerID StartClient(int session_id, bool expect_success) {
235 media::VideoCaptureParams params; 235 media::VideoCaptureParams params;
236 params.requested_format = media::VideoCaptureFormat( 236 params.requested_format = media::VideoCaptureFormat(
237 gfx::Size(320, 240), 30, media::PIXEL_FORMAT_I420); 237 gfx::Size(320, 240), 30, media::PIXEL_FORMAT_I420);
238 238
239 VideoCaptureControllerID client_id(next_client_id_++); 239 VideoCaptureControllerID client_id(next_client_id_++);
240 vcm_->StartCaptureForClient( 240 vcm_->ConnectClient(
241 session_id, 241 session_id, params, client_id, frame_observer_.get(),
242 params,
243 client_id,
244 frame_observer_.get(),
245 base::Bind(&VideoCaptureManagerTest::OnGotControllerCallback, 242 base::Bind(&VideoCaptureManagerTest::OnGotControllerCallback,
246 base::Unretained(this), 243 base::Unretained(this), client_id, expect_success));
247 client_id,
248 expect_success));
249 base::RunLoop().RunUntilIdle(); 244 base::RunLoop().RunUntilIdle();
250 return client_id; 245 return client_id;
251 } 246 }
252 247
253 void StopClient(VideoCaptureControllerID client_id) { 248 void StopClient(VideoCaptureControllerID client_id) {
254 ASSERT_TRUE(1 == controllers_.count(client_id)); 249 ASSERT_TRUE(1 == controllers_.count(client_id));
255 vcm_->StopCaptureForClient(controllers_[client_id], client_id, 250 vcm_->DisconnectClient(controllers_[client_id], client_id,
256 frame_observer_.get(), false); 251 frame_observer_.get(), false);
257 controllers_.erase(client_id); 252 controllers_.erase(client_id);
258 } 253 }
259 254
260 void ResumeClient(int session_id, int client_id) { 255 void ResumeClient(int session_id, int client_id) {
261 ASSERT_EQ(1u, controllers_.count(client_id)); 256 ASSERT_EQ(1u, controllers_.count(client_id));
262 media::VideoCaptureParams params; 257 media::VideoCaptureParams params;
263 params.requested_format = media::VideoCaptureFormat( 258 params.requested_format = media::VideoCaptureFormat(
264 gfx::Size(320, 240), 30, media::PIXEL_FORMAT_I420); 259 gfx::Size(320, 240), 30, media::PIXEL_FORMAT_I420);
265 vcm_->ResumeCaptureForClient( 260 vcm_->ResumeCaptureForClient(
266 session_id, 261 session_id,
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 EXPECT_CALL(*listener_, Opened(MEDIA_DEVICE_VIDEO_CAPTURE, _)); 338 EXPECT_CALL(*listener_, Opened(MEDIA_DEVICE_VIDEO_CAPTURE, _));
344 EXPECT_CALL(*frame_observer_, OnStarted(_)); 339 EXPECT_CALL(*frame_observer_, OnStarted(_));
345 EXPECT_CALL(*listener_, Aborted(MEDIA_DEVICE_VIDEO_CAPTURE, _)); 340 EXPECT_CALL(*listener_, Aborted(MEDIA_DEVICE_VIDEO_CAPTURE, _));
346 341
347 int video_session_id = vcm_->Open(devices_.front().device); 342 int video_session_id = vcm_->Open(devices_.front().device);
348 VideoCaptureControllerID client_id = StartClient(video_session_id, true); 343 VideoCaptureControllerID client_id = StartClient(video_session_id, true);
349 344
350 // Wait for device opened. 345 // Wait for device opened.
351 base::RunLoop().RunUntilIdle(); 346 base::RunLoop().RunUntilIdle();
352 347
353 vcm_->StopCaptureForClient(controllers_[client_id], client_id, 348 vcm_->DisconnectClient(controllers_[client_id], client_id,
354 frame_observer_.get(), true); 349 frame_observer_.get(), true);
355 350
356 // Wait to check callbacks before removing the listener. 351 // Wait to check callbacks before removing the listener.
357 base::RunLoop().RunUntilIdle(); 352 base::RunLoop().RunUntilIdle();
358 vcm_->UnregisterListener(listener_.get()); 353 vcm_->UnregisterListener(listener_.get());
359 } 354 }
360 355
361 TEST_F(VideoCaptureManagerTest, AddObserver) { 356 TEST_F(VideoCaptureManagerTest, AddObserver) {
362 InSequence s; 357 InSequence s;
363 MockVideoCaptureObserver observer; 358 MockVideoCaptureObserver observer;
364 vcm_->AddVideoCaptureObserver(&observer); 359 vcm_->AddVideoCaptureObserver(&observer);
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
790 // Wait to check callbacks before removing the listener. 785 // Wait to check callbacks before removing the listener.
791 base::RunLoop().RunUntilIdle(); 786 base::RunLoop().RunUntilIdle();
792 vcm_->UnregisterListener(listener_.get()); 787 vcm_->UnregisterListener(listener_.get());
793 } 788 }
794 #endif 789 #endif
795 790
796 // TODO(mcasas): Add a test to check consolidation of the supported formats 791 // TODO(mcasas): Add a test to check consolidation of the supported formats
797 // provided by the device when http://crbug.com/323913 is closed. 792 // provided by the device when http://crbug.com/323913 is closed.
798 793
799 } // namespace content 794 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698