| Index: content/browser/renderer_host/media/video_capture_manager_unittest.cc
|
| diff --git a/content/browser/renderer_host/media/video_capture_manager_unittest.cc b/content/browser/renderer_host/media/video_capture_manager_unittest.cc
|
| index 14f44e3efb82fb9955c56ba2fcc20e8c172eeb57..f983abb0fa45b08f2726715051551311512f160d 100644
|
| --- a/content/browser/renderer_host/media/video_capture_manager_unittest.cc
|
| +++ b/content/browser/renderer_host/media/video_capture_manager_unittest.cc
|
| @@ -2,7 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -// Unit test for VideoCaptureManager
|
| +// Unit test for VideoCaptureManager.
|
|
|
| #include <string>
|
|
|
| @@ -28,7 +28,7 @@ using content::BrowserThreadImpl;
|
|
|
| namespace media_stream {
|
|
|
| -// Listener class used to track progress of VideoCaptureManager test
|
| +// Listener class used to track progress of VideoCaptureManager test.
|
| class MockMediaStreamProviderListener : public MediaStreamProviderListener {
|
| public:
|
| MockMediaStreamProviderListener()
|
| @@ -60,7 +60,7 @@ class MockMediaStreamProviderListener : public MediaStreamProviderListener {
|
|
|
| namespace {
|
|
|
| -// Needed as an input argument to Start()
|
| +// Needed as an input argument to Start().
|
| class MockFrameObserver: public media::VideoCaptureDevice::EventHandler {
|
| public:
|
| virtual void OnError() {}
|
| @@ -145,7 +145,7 @@ TEST_F(VideoCaptureManagerTest, CreateAndClose) {
|
|
|
| vcm_->EnumerateDevices();
|
|
|
| - // Wait to get device callback...
|
| + // Wait to get device callback.
|
| SyncWithVideoCaptureManagerThread();
|
|
|
| int video_session_id = vcm_->Open(listener_->devices_.front());
|
| @@ -160,7 +160,7 @@ TEST_F(VideoCaptureManagerTest, CreateAndClose) {
|
| vcm_->Stop(video_session_id, base::Closure());
|
| vcm_->Close(video_session_id);
|
|
|
| - // Wait to check callbacks before removing the listener
|
| + // Wait to check callbacks before removing the listener.
|
| SyncWithVideoCaptureManagerThread();
|
| vcm_->Unregister();
|
| }
|
| @@ -177,19 +177,20 @@ TEST_F(VideoCaptureManagerTest, OpenTwice) {
|
|
|
| vcm_->EnumerateDevices();
|
|
|
| - // Wait to get device callback...
|
| + // Wait to get device callback.
|
| SyncWithVideoCaptureManagerThread();
|
|
|
| int video_session_id_first = vcm_->Open(listener_->devices_.front());
|
|
|
| - // This should trigger an error callback with error code 'kDeviceAlreadyInUse'
|
| + // This should trigger an error callback with error code
|
| + // 'kDeviceAlreadyInUse'.
|
| int video_session_id_second = vcm_->Open(listener_->devices_.front());
|
| EXPECT_NE(video_session_id_first, video_session_id_second);
|
|
|
| vcm_->Close(video_session_id_first);
|
| vcm_->Close(video_session_id_second);
|
|
|
| - // Wait to check callbacks before removing the listener
|
| + // Wait to check callbacks before removing the listener.
|
| SyncWithVideoCaptureManagerThread();
|
| vcm_->Unregister();
|
| }
|
| @@ -206,7 +207,7 @@ TEST_F(VideoCaptureManagerTest, OpenTwo) {
|
|
|
| vcm_->EnumerateDevices();
|
|
|
| - // Wait to get device callback...
|
| + // Wait to get device callback.
|
| SyncWithVideoCaptureManagerThread();
|
|
|
| media_stream::StreamDeviceInfoArray::iterator it =
|
| @@ -219,7 +220,7 @@ TEST_F(VideoCaptureManagerTest, OpenTwo) {
|
| vcm_->Close(video_session_id_first);
|
| vcm_->Close(video_session_id_second);
|
|
|
| - // Wait to check callbacks before removing the listener
|
| + // Wait to check callbacks before removing the listener.
|
| SyncWithVideoCaptureManagerThread();
|
| vcm_->Unregister();
|
| }
|
| @@ -235,7 +236,7 @@ TEST_F(VideoCaptureManagerTest, OpenNotExisting) {
|
|
|
| vcm_->EnumerateDevices();
|
|
|
| - // Wait to get device callback...
|
| + // Wait to get device callback.
|
| SyncWithVideoCaptureManagerThread();
|
|
|
| media_stream::MediaStreamType stream_type = media_stream::kVideoCapture;
|
| @@ -244,10 +245,10 @@ TEST_F(VideoCaptureManagerTest, OpenNotExisting) {
|
| media_stream::StreamDeviceInfo dummy_device(stream_type, device_name,
|
| device_id, false);
|
|
|
| - // This should fail with error code 'kDeviceNotAvailable'
|
| + // This should fail with error code 'kDeviceNotAvailable'.
|
| vcm_->Open(dummy_device);
|
|
|
| - // Wait to check callbacks before removing the listener
|
| + // Wait to check callbacks before removing the listener.
|
| SyncWithVideoCaptureManagerThread();
|
| vcm_->Unregister();
|
| }
|
| @@ -266,45 +267,51 @@ TEST_F(VideoCaptureManagerTest, StartUsingId) {
|
| capture_params.width = 320;
|
| capture_params.height = 240;
|
| capture_params.frame_per_second = 30;
|
| - // Start shall trigger the Open callback
|
| +
|
| + // Start shall trigger the Open callback.
|
| vcm_->Start(capture_params, frame_observer_.get());
|
|
|
| // Stop shall trigger the Close callback
|
| vcm_->Stop(media_stream::VideoCaptureManager::kStartOpenSessionId,
|
| base::Closure());
|
|
|
| - // Wait to check callbacks before removing the listener
|
| + // Wait to check callbacks before removing the listener.
|
| SyncWithVideoCaptureManagerThread();
|
| vcm_->Unregister();
|
| }
|
|
|
| -// TODO(mflodman) Remove test case below when shut-down bug is resolved, this is
|
| -// only to verify this temporary solution is ok in regards to the
|
| -// VideoCaptureManager.
|
| -// Open the devices and delete manager.
|
| -TEST_F(VideoCaptureManagerTest, DeleteManager) {
|
| +// Open and start a device, close it before calling Stop.
|
| +TEST_F(VideoCaptureManagerTest, CloseWithoutStop) {
|
| InSequence s;
|
| EXPECT_CALL(*listener_, DevicesEnumerated(_))
|
| - .Times(1);
|
| + .Times(1);
|
| EXPECT_CALL(*listener_, Opened(media_stream::kVideoCapture, _))
|
| - .Times(2);
|
| + .Times(1);
|
| + EXPECT_CALL(*listener_, Closed(media_stream::kVideoCapture, _))
|
| + .Times(1);
|
|
|
| vcm_->EnumerateDevices();
|
|
|
| - // Wait to get device callback...
|
| + // Wait to get device callback.
|
| SyncWithVideoCaptureManagerThread();
|
|
|
| - media_stream::StreamDeviceInfoArray::iterator it =
|
| - listener_->devices_.begin();
|
| - vcm_->Open(*it);
|
| - ++it;
|
| - vcm_->Open(*it);
|
| + 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());
|
| +
|
| + // Close will stop the running device, an assert will be triggered in
|
| + // VideoCaptureManager destructor otherwise.
|
| + vcm_->Close(video_session_id);
|
| + vcm_->Stop(video_session_id, base::Closure());
|
|
|
| // Wait to check callbacks before removing the listener
|
| SyncWithVideoCaptureManagerThread();
|
| -
|
| - // Delete the manager.
|
| - vcm_.reset();
|
| + vcm_->Unregister();
|
| }
|
|
|
| } // namespace
|
|
|