| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Unit test for VideoCaptureManager. | 5 // Unit test for VideoCaptureManager. |
| 6 | 6 |
| 7 #include "content/browser/renderer_host/media/video_capture_manager.h" | 7 #include "content/browser/renderer_host/media/video_capture_manager.h" |
| 8 | 8 |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 protected: | 194 protected: |
| 195 void SetUp() override { | 195 void SetUp() override { |
| 196 listener_.reset(new MockMediaStreamProviderListener()); | 196 listener_.reset(new MockMediaStreamProviderListener()); |
| 197 vcm_ = new VideoCaptureManager( | 197 vcm_ = new VideoCaptureManager( |
| 198 std::unique_ptr<media::VideoCaptureDeviceFactory>( | 198 std::unique_ptr<media::VideoCaptureDeviceFactory>( |
| 199 new WrappedDeviceFactory()), | 199 new WrappedDeviceFactory()), |
| 200 base::ThreadTaskRunnerHandle::Get()); | 200 base::ThreadTaskRunnerHandle::Get()); |
| 201 video_capture_device_factory_ = static_cast<WrappedDeviceFactory*>( | 201 video_capture_device_factory_ = static_cast<WrappedDeviceFactory*>( |
| 202 vcm_->video_capture_device_factory()); | 202 vcm_->video_capture_device_factory()); |
| 203 const int32_t kNumberOfFakeDevices = 2; | 203 const int32_t kNumberOfFakeDevices = 2; |
| 204 video_capture_device_factory_->set_number_of_devices(kNumberOfFakeDevices); | 204 video_capture_device_factory_->SetToDefaultDevicesConfig( |
| 205 kNumberOfFakeDevices); |
| 205 vcm_->RegisterListener(listener_.get()); | 206 vcm_->RegisterListener(listener_.get()); |
| 206 frame_observer_.reset(new MockFrameObserver()); | 207 frame_observer_.reset(new MockFrameObserver()); |
| 207 | 208 |
| 208 base::RunLoop run_loop; | 209 base::RunLoop run_loop; |
| 209 vcm_->EnumerateDevices( | 210 vcm_->EnumerateDevices( |
| 210 base::Bind(&VideoCaptureManagerTest::HandleEnumerationResult, | 211 base::Bind(&VideoCaptureManagerTest::HandleEnumerationResult, |
| 211 base::Unretained(this), run_loop.QuitClosure())); | 212 base::Unretained(this), run_loop.QuitClosure())); |
| 212 run_loop.Run(); | 213 run_loop.Run(); |
| 213 ASSERT_GE(devices_.size(), 2u); | 214 ASSERT_GE(devices_.size(), 2u); |
| 214 } | 215 } |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 393 base::RunLoop().RunUntilIdle(); | 394 base::RunLoop().RunUntilIdle(); |
| 394 vcm_->UnregisterListener(); | 395 vcm_->UnregisterListener(); |
| 395 } | 396 } |
| 396 | 397 |
| 397 // Connect and disconnect devices. | 398 // Connect and disconnect devices. |
| 398 TEST_F(VideoCaptureManagerTest, ConnectAndDisconnectDevices) { | 399 TEST_F(VideoCaptureManagerTest, ConnectAndDisconnectDevices) { |
| 399 int number_of_devices_keep = | 400 int number_of_devices_keep = |
| 400 video_capture_device_factory_->number_of_devices(); | 401 video_capture_device_factory_->number_of_devices(); |
| 401 | 402 |
| 402 // Simulate we remove 1 fake device. | 403 // Simulate we remove 1 fake device. |
| 403 video_capture_device_factory_->set_number_of_devices(1); | 404 video_capture_device_factory_->SetToDefaultDevicesConfig(1); |
| 404 base::RunLoop run_loop; | 405 base::RunLoop run_loop; |
| 405 vcm_->EnumerateDevices( | 406 vcm_->EnumerateDevices( |
| 406 base::Bind(&VideoCaptureManagerTest::HandleEnumerationResult, | 407 base::Bind(&VideoCaptureManagerTest::HandleEnumerationResult, |
| 407 base::Unretained(this), run_loop.QuitClosure())); | 408 base::Unretained(this), run_loop.QuitClosure())); |
| 408 run_loop.Run(); | 409 run_loop.Run(); |
| 409 ASSERT_EQ(devices_.size(), 1u); | 410 ASSERT_EQ(devices_.size(), 1u); |
| 410 | 411 |
| 411 // Simulate we add 2 fake devices. | 412 // Simulate we add 2 fake devices. |
| 412 video_capture_device_factory_->set_number_of_devices(3); | 413 video_capture_device_factory_->SetToDefaultDevicesConfig(3); |
| 413 base::RunLoop run_loop2; | 414 base::RunLoop run_loop2; |
| 414 vcm_->EnumerateDevices( | 415 vcm_->EnumerateDevices( |
| 415 base::Bind(&VideoCaptureManagerTest::HandleEnumerationResult, | 416 base::Bind(&VideoCaptureManagerTest::HandleEnumerationResult, |
| 416 base::Unretained(this), run_loop2.QuitClosure())); | 417 base::Unretained(this), run_loop2.QuitClosure())); |
| 417 run_loop2.Run(); | 418 run_loop2.Run(); |
| 418 ASSERT_EQ(devices_.size(), 3u); | 419 ASSERT_EQ(devices_.size(), 3u); |
| 419 | 420 |
| 420 vcm_->UnregisterListener(); | 421 vcm_->UnregisterListener(); |
| 421 video_capture_device_factory_->set_number_of_devices(number_of_devices_keep); | 422 video_capture_device_factory_->SetToDefaultDevicesConfig( |
| 423 number_of_devices_keep); |
| 422 } | 424 } |
| 423 | 425 |
| 424 // Enumerate devices and open the first, then check the list of supported | 426 // Enumerate devices and open the first, then check the list of supported |
| 425 // formats. Then start the opened device. The capability list should stay the | 427 // formats. Then start the opened device. The capability list should stay the |
| 426 // same. Finally stop the device and check that the capabilities stay unchanged. | 428 // same. Finally stop the device and check that the capabilities stay unchanged. |
| 427 TEST_F(VideoCaptureManagerTest, ManipulateDeviceAndCheckCapabilities) { | 429 TEST_F(VideoCaptureManagerTest, ManipulateDeviceAndCheckCapabilities) { |
| 428 // Before enumerating the devices, requesting formats should return false. | 430 // Before enumerating the devices, requesting formats should return false. |
| 429 int video_session_id = 0; | 431 int video_session_id = 0; |
| 430 media::VideoCaptureFormats supported_formats; | 432 media::VideoCaptureFormats supported_formats; |
| 431 supported_formats.clear(); | 433 supported_formats.clear(); |
| (...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 775 // Wait to check callbacks before removing the listener. | 777 // Wait to check callbacks before removing the listener. |
| 776 base::RunLoop().RunUntilIdle(); | 778 base::RunLoop().RunUntilIdle(); |
| 777 vcm_->UnregisterListener(); | 779 vcm_->UnregisterListener(); |
| 778 } | 780 } |
| 779 #endif | 781 #endif |
| 780 | 782 |
| 781 // TODO(mcasas): Add a test to check consolidation of the supported formats | 783 // TODO(mcasas): Add a test to check consolidation of the supported formats |
| 782 // provided by the device when http://crbug.com/323913 is closed. | 784 // provided by the device when http://crbug.com/323913 is closed. |
| 783 | 785 |
| 784 } // namespace content | 786 } // namespace content |
| OLD | NEW |