Index: media/video/capture/video_capture_device_unittest.cc |
diff --git a/media/video/capture/video_capture_device_unittest.cc b/media/video/capture/video_capture_device_unittest.cc |
index 586060f169fdac71b838effc7e976607e8f528ae..234e04ae5bb66efe3c5cf041832153fe150e4bcd 100644 |
--- a/media/video/capture/video_capture_device_unittest.cc |
+++ b/media/video/capture/video_capture_device_unittest.cc |
@@ -68,6 +68,8 @@ class MockFrameObserver : public media::VideoCaptureDevice::EventHandler { |
MOCK_METHOD0(OnErr, void()); |
MOCK_METHOD1(OnFrameInfo, void(const VideoCaptureCapability&)); |
MOCK_METHOD1(OnFrameInfoChanged, void(const VideoCaptureCapability&)); |
+ MOCK_METHOD1(OnDeviceSupportedFormatsEnumerated, |
+ void(const VideoCaptureFormats& formats)); |
explicit MockFrameObserver( |
base::Closure frame_cb) |
@@ -121,6 +123,7 @@ class VideoCaptureDeviceTest : public testing::Test { |
#endif |
scoped_ptr<MockFrameObserver> frame_observer_; |
VideoCaptureDevice::Names names_; |
+ VideoCaptureFormats capture_formats_; |
scoped_ptr<base::MessageLoop> loop_; |
}; |
@@ -270,7 +273,7 @@ TEST_F(VideoCaptureDeviceTest, ReAllocateCamera) { |
// The device (if it is an async implementation) may or may not get as far |
// as the OnFrameInfo() step; we're intentionally not going to wait for it |
// to get that far. |
- ON_CALL(*frame_observer, OnFrameInfo(_)); |
+ EXPECT_CALL(*frame_observer, OnFrameInfo(_)).Times(AnyNumber()); |
device->AllocateAndStart(requested_format, |
frame_observer.PassAs<EventHandler>()); |
device->StopAndDeAllocate(); |
@@ -450,4 +453,23 @@ TEST_F(VideoCaptureDeviceTest, FakeCaptureVariableResolution) { |
device->StopAndDeAllocate(); |
} |
+TEST_F(VideoCaptureDeviceTest, GetDeviceSupportedFormats) { |
+ VideoCaptureDevice::Names names; |
+ |
+ FakeVideoCaptureDevice::GetDeviceNames(&names); |
+ scoped_ptr<VideoCaptureDevice> device( |
+ FakeVideoCaptureDevice::Create(names.front())); |
+ ASSERT_TRUE(device.get() != NULL); |
+ EXPECT_CALL(*frame_observer_, OnDeviceSupportedFormatsEnumerated(_)) |
+ .Times(1) |
+ .WillOnce(SaveArg<0>(&capture_formats_)); |
+ device->GetDeviceSupportedFormats(frame_observer_.PassAs<EventHandler>()); |
+ |
+ EXPECT_GE(capture_formats_.size(), 1u); |
+ EXPECT_EQ(capture_formats_[0].width, 640); |
+ EXPECT_EQ(capture_formats_[0].height, 480); |
+ EXPECT_EQ(capture_formats_[0].color, media::PIXEL_FORMAT_I420); |
+ EXPECT_GE(capture_formats_[0].frame_rate, 20); |
+} |
+ |
}; // namespace media |