Chromium Code Reviews| 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..6700f9c3f957a735e84187c21672f9ce2e841785 100644 |
| --- a/content/browser/renderer_host/media/video_capture_manager_unittest.cc |
| +++ b/content/browser/renderer_host/media/video_capture_manager_unittest.cc |
| @@ -1,8 +1,8 @@ |
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // 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); |
|
tommi (sloooow) - chröme
2012/02/23 10:03:22
indent is off here and below. should be
EXPECT_CA
|
| 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 |