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 8525a344f26038d286d27fa8a64e41416d3d8026..e5e8e8218314e6239ebc3898afedd02b0e4dac4e 100644 |
--- a/content/browser/renderer_host/media/video_capture_manager_unittest.cc |
+++ b/content/browser/renderer_host/media/video_capture_manager_unittest.cc |
@@ -94,6 +94,9 @@ class WrappedDeviceFactory : public media::FakeVideoCaptureDeviceFactory { |
DISALLOW_COPY_AND_ASSIGN(WrappedDevice); |
}; |
+ static const media::VideoFacingMode DEFAULT_FACING = |
+ media::VideoFacingMode::MEDIA_VIDEO_FACING_USER; |
+ |
WrappedDeviceFactory() : FakeVideoCaptureDeviceFactory() {} |
~WrappedDeviceFactory() final {} |
@@ -103,6 +106,16 @@ class WrappedDeviceFactory : public media::FakeVideoCaptureDeviceFactory { |
FakeVideoCaptureDeviceFactory::CreateDevice(device_descriptor), this); |
} |
+ void GetDeviceDescriptors( |
+ media::VideoCaptureDeviceDescriptors* device_descriptors) override { |
+ media::FakeVideoCaptureDeviceFactory::GetDeviceDescriptors( |
+ device_descriptors); |
+ for (auto& descriptor : *device_descriptors) { |
+ if (descriptor.facing == media::VideoFacingMode::MEDIA_VIDEO_FACING_NONE) |
+ descriptor.facing = DEFAULT_FACING; |
+ } |
+ } |
+ |
MOCK_METHOD0(WillSuspendDevice, void()); |
MOCK_METHOD0(WillResumeDevice, void()); |
@@ -150,6 +163,13 @@ class MockFrameObserver : public VideoCaptureControllerEventHandler { |
void OnGotControllerCallback(VideoCaptureControllerID) {} |
}; |
+// Input argument for testing AddVideoCaptureObserver(). |
+class MockVideoCaptureObserver : public media::VideoCaptureObserver { |
+ public: |
+ MOCK_METHOD1(OnVideoCaptureStarted, void(media::VideoFacingMode)); |
+ MOCK_METHOD1(OnVideoCaptureStopped, void(media::VideoFacingMode)); |
+}; |
+ |
} // namespace |
// Test class |
@@ -331,6 +351,27 @@ TEST_F(VideoCaptureManagerTest, CreateAndAbort) { |
vcm_->UnregisterListener(); |
} |
+TEST_F(VideoCaptureManagerTest, AddObserver) { |
+ InSequence s; |
+ MockVideoCaptureObserver observer; |
+ vcm_->AddVideoCaptureObserver(&observer); |
+ |
+ EXPECT_CALL(observer, |
+ OnVideoCaptureStarted(WrappedDeviceFactory::DEFAULT_FACING)); |
+ EXPECT_CALL(observer, |
+ OnVideoCaptureStopped(WrappedDeviceFactory::DEFAULT_FACING)); |
+ |
+ int video_session_id = vcm_->Open(devices_.front()); |
+ VideoCaptureControllerID client_id = StartClient(video_session_id, true); |
+ |
+ StopClient(client_id); |
+ vcm_->Close(video_session_id); |
+ |
+ // Wait to check callbacks before removing the listener. |
+ base::RunLoop().RunUntilIdle(); |
+ vcm_->UnregisterListener(); |
+} |
+ |
// Open the same device twice. |
TEST_F(VideoCaptureManagerTest, OpenTwice) { |
InSequence s; |