Index: services/video_capture/video_capture_service_unittest.cc |
diff --git a/services/video_capture/service_unittest.cc b/services/video_capture/video_capture_service_unittest.cc |
similarity index 59% |
rename from services/video_capture/service_unittest.cc |
rename to services/video_capture/video_capture_service_unittest.cc |
index c3abcf76f74ed0243e09d0c0a72d27bacd4585ef..669d2fbadc617459b275d91ea94980d95c001400 100644 |
--- a/services/video_capture/service_unittest.cc |
+++ b/services/video_capture/video_capture_service_unittest.cc |
@@ -4,10 +4,8 @@ |
#include "base/memory/ref_counted.h" |
#include "base/run_loop.h" |
-#include "services/shell/public/cpp/service_test.h" |
#include "services/video_capture/public/interfaces/video_capture_device_factory.mojom.h" |
-#include "services/video_capture/public/interfaces/video_capture_service.mojom.h" |
-#include "testing/gmock/include/gmock/gmock.h" |
+#include "services/video_capture/video_capture_service_test.h" |
using testing::Exactly; |
using testing::_; |
@@ -16,37 +14,6 @@ using testing::InvokeWithoutArgs; |
namespace video_capture { |
-class MockDeviceDescriptorReceiver { |
- public: |
- // Use forwarding method to work around gmock not supporting move-only types. |
- void HandleEnumerateDeviceDescriptorsCallback( |
- std::vector<mojom::VideoCaptureDeviceDescriptorPtr> descriptors) { |
- OnEnumerateDeviceDescriptorsCallback(descriptors); |
- } |
- |
- MOCK_METHOD1( |
- OnEnumerateDeviceDescriptorsCallback, |
- void(const std::vector<mojom::VideoCaptureDeviceDescriptorPtr>&)); |
-}; |
- |
-class VideoCaptureServiceTest : public shell::test::ServiceTest { |
- public: |
- VideoCaptureServiceTest() |
- : shell::test::ServiceTest("exe:video_capture_unittests") {} |
- ~VideoCaptureServiceTest() override {} |
- |
- void SetUp() override { |
- ServiceTest::SetUp(); |
- connector()->ConnectToInterface("mojo:video_capture", &service_); |
- service_->ConnectToFakeDeviceFactory(mojo::GetProxy(&factory_)); |
- } |
- |
- protected: |
- mojom::VideoCaptureServicePtr service_; |
- mojom::VideoCaptureDeviceFactoryPtr factory_; |
- MockDeviceDescriptorReceiver descriptor_receiver_; |
-}; |
- |
// Tests that an answer arrives from the service when calling |
// EnumerateDeviceDescriptors(). |
TEST_F(VideoCaptureServiceTest, EnumerateDeviceDescriptorsCallbackArrives) { |
@@ -80,4 +47,26 @@ TEST_F(VideoCaptureServiceTest, FakeDeviceFactoryEnumeratesOneDevice) { |
ASSERT_EQ(1u, num_devices_enumerated); |
} |
+// Tests that VideoCaptureDeviceFactory::CreateDeviceProxy() returns an error |
+// code when trying to create a device for an invalid descriptor. |
+TEST_F(VideoCaptureServiceTest, ErrorCodeOnCreateDeviceForInvalidDescriptor) { |
+ auto invalid_descriptor = mojom::VideoCaptureDeviceDescriptor::New(); |
+ invalid_descriptor->device_id = "invalid"; |
+ invalid_descriptor->model_id = "invalid"; |
+ base::RunLoop wait_loop; |
+ mojom::VideoCaptureDeviceProxyPtr fake_device_proxy_; |
mcasas
2016/08/31 21:10:35
No underscore for non-members.
chfremer
2016/08/31 21:49:43
Done.
|
+ mojom::DeviceAccessResultCode result_code; |
+ factory_->CreateDeviceProxy( |
+ std::move(invalid_descriptor), mojo::GetProxy(&fake_device_proxy_), |
+ base::Bind( |
+ [](base::RunLoop* wait_loop, mojom::DeviceAccessResultCode* target, |
+ mojom::DeviceAccessResultCode result_code) { |
+ *target = result_code; |
+ wait_loop->Quit(); |
+ }, |
+ &wait_loop, &result_code)); |
mcasas
2016/08/31 21:10:35
Simplify this test case by removing l.58 and movin
chfremer
2016/08/31 21:49:43
I did that originally, but ran into the downside t
|
+ wait_loop.Run(); |
+ ASSERT_EQ(mojom::DeviceAccessResultCode::ERROR_DEVICE_NOT_FOUND, result_code); |
+} |
+ |
} // namespace video_capture |