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

Unified Diff: content/browser/renderer_host/media/video_capture_manager_unittest.cc

Issue 9320070: Re-added OnChannelClosing in MediaStreamDispatcherHost to close open media devices. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Indentation after rebase. Created 8 years, 10 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698