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 a986e0bc3702eca982798687eb0dbc9f17821b82..aa6cb7f7637e158360ef8faaa7033e3a3ed7f06c 100644 |
--- a/content/browser/renderer_host/media/video_capture_manager_unittest.cc |
+++ b/content/browser/renderer_host/media/video_capture_manager_unittest.cc |
@@ -40,6 +40,9 @@ class MockMediaStreamProviderListener : public MediaStreamProviderListener { |
const StreamDeviceInfoArray&)); |
MOCK_METHOD3(Error, void(MediaStreamType, int, |
MediaStreamProviderError)); |
+ MOCK_METHOD2( |
+ DeviceCapabilitiesEnumerated, |
+ void(const StreamDeviceInfo&, const media::VideoCaptureCapabilities&)); |
}; // class MockMediaStreamProviderListener |
// Needed as an input argument to StartCaptureForClient(). |
@@ -161,6 +164,42 @@ TEST_F(VideoCaptureManagerTest, CreateAndClose) { |
vcm_->Unregister(); |
} |
+// Try to enumerate devices, then check their capture capabilities. |
+TEST_F(VideoCaptureManagerTest, EnumerateDevicesAndCheckCapabilities) { |
+ StreamDeviceInfoArray devices; |
+ |
+ InSequence s; |
+ EXPECT_CALL(*listener_, DevicesEnumerated(MEDIA_DEVICE_VIDEO_CAPTURE, _)) |
+ .Times(1).WillOnce(SaveArg<1>(&devices)); |
+ vcm_->EnumerateDevices(MEDIA_DEVICE_VIDEO_CAPTURE); |
+ message_loop_->RunUntilIdle(); |
+ |
tommi (sloooow) - chröme
2013/10/25 14:15:34
1 empty line
mcasas
2013/10/28 12:50:08
Done.
|
+ |
+ media::VideoCaptureCapabilities device_capabilities; |
+ StreamDeviceInfoArray::iterator device_it; |
+ for (device_it = devices.begin(); device_it != devices.end(); ++device_it) { |
+ EXPECT_CALL(*listener_, DeviceCapabilitiesEnumerated(_, _)) |
+ .Times(1).WillOnce(SaveArg<1>(&device_capabilities)); |
+ |
+ vcm_->EnumerateDeviceCapabilities(*device_it); |
+ message_loop_->RunUntilIdle(); |
tommi (sloooow) - chröme
2013/10/25 14:15:34
can you add a comment that explains what happens d
mcasas
2013/10/28 12:50:08
(Tentatively) Done.
|
+ DCHECK_GE(device_capabilities.size(), 1u); |
tommi (sloooow) - chröme
2013/10/25 14:15:34
ASSERT_GE?
mcasas
2013/10/28 12:50:08
Hmm device documentation says devices may return e
|
+ |
+ media::VideoCaptureCapabilities::const_iterator format; |
+ for (format = device_capabilities.begin(); |
+ format != device_capabilities.end(); |
+ ++format) { |
+ DCHECK_GE(format->width, 1); |
tommi (sloooow) - chröme
2013/10/25 14:15:34
EXPECT_GE? (same below)
mcasas
2013/10/28 12:50:08
Oops :) Yes, all should be EXPECT_GE
|
+ DCHECK_GE(format->height, 1); |
+ DCHECK_GE(format->frame_rate, 1); |
+ DVLOG(1) << " Device name: " << device_it->device.name << ", format (" |
+ << format->width << "x" << format->height << ")@" |
+ << format->frame_rate << "fps"; |
+ } |
+ } |
+ vcm_->Unregister(); |
+} |
+ |
// Open the same device twice. |
TEST_F(VideoCaptureManagerTest, OpenTwice) { |
StreamDeviceInfoArray devices; |