Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(675)

Unified Diff: services/video_capture/video_capture_service_unittest.cc

Issue 2238083004: Video Capture Mojo (1.4b): Implement ability to use fake device instance (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@FillServicePart1
Patch Set: mcasas' comments Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698