| 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;
|
|
|