| Index: content/browser/renderer_host/media/video_capture_manager_unittest.cc
|
| ===================================================================
|
| --- content/browser/renderer_host/media/video_capture_manager_unittest.cc (revision 91097)
|
| +++ content/browser/renderer_host/media/video_capture_manager_unittest.cc (working copy)
|
| @@ -69,7 +69,8 @@
|
| class VideoCaptureManagerTest : public testing::Test {
|
| public:
|
| VideoCaptureManagerTest()
|
| - : listener_(),
|
| + : vcm_(),
|
| + listener_(),
|
| message_loop_(),
|
| io_thread_(),
|
| frame_observer_() {
|
| @@ -81,6 +82,9 @@
|
| listener_.reset(new media_stream::MockMediaStreamProviderListener());
|
| message_loop_.reset(new MessageLoop(MessageLoop::TYPE_IO));
|
| io_thread_.reset(new BrowserThread(BrowserThread::IO, message_loop_.get()));
|
| + vcm_.reset(new media_stream::VideoCaptureManager());
|
| + vcm_->UseFakeDevice();
|
| + vcm_->Register(listener_.get());
|
| frame_observer_.reset(new MockFrameObserver());
|
| }
|
|
|
| @@ -94,8 +98,9 @@
|
| }
|
|
|
| // Called on the main thread.
|
| - static void PostQuitOnVideoCaptureManagerThread(MessageLoop* message_loop) {
|
| - media_stream::VideoCaptureManager::Get()->GetMessageLoop()->PostTask(
|
| + static void PostQuitOnVideoCaptureManagerThread(
|
| + MessageLoop* message_loop, media_stream::VideoCaptureManager* vcm) {
|
| + vcm->GetMessageLoop()->PostTask(
|
| FROM_HERE, NewRunnableFunction(&PostQuitMessageLoop, message_loop));
|
| }
|
|
|
| @@ -107,9 +112,11 @@
|
| void SyncWithVideoCaptureManagerThread() {
|
| message_loop_->PostTask(
|
| FROM_HERE, NewRunnableFunction(&PostQuitOnVideoCaptureManagerThread,
|
| - message_loop_.get()));
|
| + message_loop_.get(),
|
| + vcm_.get()));
|
| message_loop_->Run();
|
| }
|
| + scoped_ptr<media_stream::VideoCaptureManager> vcm_;
|
| scoped_ptr<media_stream::MockMediaStreamProviderListener> listener_;
|
| scoped_ptr<MessageLoop> message_loop_;
|
| scoped_ptr<BrowserThread> io_thread_;
|
| @@ -131,31 +138,26 @@
|
| EXPECT_CALL(*listener_, Closed(media_stream::kVideoCapture, _))
|
| .Times(1);
|
|
|
| - media_stream::VideoCaptureManager* vcm =
|
| - media_stream::VideoCaptureManager::Get();
|
| - // Make sure fake devices are used
|
| - vcm->UseFakeDevice();
|
| - vcm->Register(listener_.get());
|
| - vcm->EnumerateDevices();
|
| + vcm_->EnumerateDevices();
|
|
|
| // Wait to get device callback...
|
| SyncWithVideoCaptureManagerThread();
|
|
|
| - int video_session_id = vcm->Open(listener_->devices_.front());
|
| + int video_session_id = vcm_->Open(listener_->devices_.front());
|
|
|
| media::VideoCaptureParams capture_params;
|
| capture_params.session_id = video_session_id;
|
| capture_params.width = 320;
|
| capture_params.height = 240;
|
| capture_params.frame_per_second = 30;
|
| - vcm->Start(capture_params, frame_observer_.get());
|
| + vcm_->Start(capture_params, frame_observer_.get());
|
|
|
| - vcm->Stop(video_session_id, NULL);
|
| - vcm->Close(video_session_id);
|
| + vcm_->Stop(video_session_id, NULL);
|
| + vcm_->Close(video_session_id);
|
|
|
| // Wait to check callbacks before removing the listener
|
| SyncWithVideoCaptureManagerThread();
|
| - vcm->Unregister();
|
| + vcm_->Unregister();
|
| }
|
|
|
| // Open the same device twice, should fail.
|
| @@ -171,26 +173,21 @@
|
| EXPECT_CALL(*listener_, Closed(media_stream::kVideoCapture, _))
|
| .Times(1);
|
|
|
| - media_stream::VideoCaptureManager* vcm =
|
| - media_stream::VideoCaptureManager::Get();
|
| - // Make sure fake devices are used
|
| - vcm->UseFakeDevice();
|
| - vcm->Register(listener_.get());
|
| - vcm->EnumerateDevices();
|
| + vcm_->EnumerateDevices();
|
|
|
| // Wait to get device callback...
|
| SyncWithVideoCaptureManagerThread();
|
|
|
| - int video_session_id = vcm->Open(listener_->devices_.front());
|
| + int video_session_id = vcm_->Open(listener_->devices_.front());
|
|
|
| // This should trigger an error callback with error code 'kDeviceAlreadyInUse'
|
| - vcm->Open(listener_->devices_.front());
|
| + vcm_->Open(listener_->devices_.front());
|
|
|
| - vcm->Close(video_session_id);
|
| + vcm_->Close(video_session_id);
|
|
|
| // Wait to check callbacks before removing the listener
|
| SyncWithVideoCaptureManagerThread();
|
| - vcm->Unregister();
|
| + vcm_->Unregister();
|
| }
|
|
|
| // Open two different devices.
|
| @@ -203,12 +200,7 @@
|
| EXPECT_CALL(*listener_, Closed(media_stream::kVideoCapture, _))
|
| .Times(2);
|
|
|
| - media_stream::VideoCaptureManager* vcm =
|
| - media_stream::VideoCaptureManager::Get();
|
| - // Make sure fake devices are used
|
| - vcm->UseFakeDevice();
|
| - vcm->Register(listener_.get());
|
| - vcm->EnumerateDevices();
|
| + vcm_->EnumerateDevices();
|
|
|
| // Wait to get device callback...
|
| SyncWithVideoCaptureManagerThread();
|
| @@ -216,18 +208,18 @@
|
| media_stream::StreamDeviceInfoArray::iterator it =
|
| listener_->devices_.begin();
|
|
|
| - int video_session_id_first = vcm->Open(*it);
|
| + int video_session_id_first = vcm_->Open(*it);
|
|
|
| // This should trigger an error callback with error code 'kDeviceAlreadyInUse'
|
| ++it;
|
| - int video_session_id_second = vcm->Open(*it);
|
| + int video_session_id_second = vcm_->Open(*it);
|
|
|
| - vcm->Close(video_session_id_first);
|
| - vcm->Close(video_session_id_second);
|
| + vcm_->Close(video_session_id_first);
|
| + vcm_->Close(video_session_id_second);
|
|
|
| // Wait to check callbacks before removing the listener
|
| SyncWithVideoCaptureManagerThread();
|
| - vcm->Unregister();
|
| + vcm_->Unregister();
|
| }
|
|
|
| // Try open a non-existing device.
|
| @@ -239,12 +231,7 @@
|
| media_stream::kDeviceNotAvailable))
|
| .Times(1);
|
|
|
| - media_stream::VideoCaptureManager* vcm =
|
| - media_stream::VideoCaptureManager::Get();
|
| - // Make sure fake devices are used
|
| - vcm->UseFakeDevice();
|
| - vcm->Register(listener_.get());
|
| - vcm->EnumerateDevices();
|
| + vcm_->EnumerateDevices();
|
|
|
| // Wait to get device callback...
|
| SyncWithVideoCaptureManagerThread();
|
| @@ -256,11 +243,11 @@
|
| device_id, false);
|
|
|
| // This should fail with error code 'kDeviceNotAvailable'
|
| - vcm->Open(dummy_device);
|
| + vcm_->Open(dummy_device);
|
|
|
| // Wait to check callbacks before removing the listener
|
| SyncWithVideoCaptureManagerThread();
|
| - vcm->Unregister();
|
| + vcm_->Unregister();
|
| }
|
|
|
| // Start a device using "magic" id, i.e. call Start without calling Open.
|
| @@ -271,12 +258,6 @@
|
| EXPECT_CALL(*listener_, Closed(media_stream::kVideoCapture, _))
|
| .Times(1);
|
|
|
| - media_stream::VideoCaptureManager* vcm =
|
| - media_stream::VideoCaptureManager::Get();
|
| - // Make sure fake devices are used
|
| - vcm->UseFakeDevice();
|
| - vcm->Register(listener_.get());
|
| -
|
| media::VideoCaptureParams capture_params;
|
| capture_params.session_id =
|
| media_stream::VideoCaptureManager::kStartOpenSessionId;
|
| @@ -284,14 +265,14 @@
|
| capture_params.height = 240;
|
| capture_params.frame_per_second = 30;
|
| // Start shall trigger the Open callback
|
| - vcm->Start(capture_params, frame_observer_.get());
|
| + vcm_->Start(capture_params, frame_observer_.get());
|
|
|
| // Stop shall trigger the Close callback
|
| - vcm->Stop(media_stream::VideoCaptureManager::kStartOpenSessionId, NULL);
|
| + vcm_->Stop(media_stream::VideoCaptureManager::kStartOpenSessionId, NULL);
|
|
|
| // Wait to check callbacks before removing the listener
|
| SyncWithVideoCaptureManagerThread();
|
| - vcm->Unregister();
|
| + vcm_->Unregister();
|
| }
|
|
|
| } // namespace
|
|
|