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

Unified Diff: services/video_capture/test/mock_device_test.cc

Issue 2818513003: [Mojo Video Capture] Adapt video_capture service to refactored video capture stack (Closed)
Patch Set: Fix compile errors Created 3 years, 8 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
« no previous file with comments | « services/video_capture/test/mock_device_test.h ('k') | services/video_capture/test/mock_device_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/video_capture/test/mock_device_test.cc
diff --git a/services/video_capture/test/mock_device_test.cc b/services/video_capture/test/mock_device_test.cc
index 9b976347c8012c0a736465a0d8039fd5ffa4adeb..8b526503c50fd0013ab4bbf547fdf63bc6741a8d 100644
--- a/services/video_capture/test/mock_device_test.cc
+++ b/services/video_capture/test/mock_device_test.cc
@@ -7,6 +7,11 @@
#include "base/memory/ptr_util.h"
#include "base/run_loop.h"
#include "media/capture/video/video_capture_jpeg_decoder.h"
+#include "media/capture/video/video_capture_system_impl.h"
+
+using testing::_;
+using testing::Invoke;
+using testing::InvokeWithoutArgs;
namespace {
@@ -22,11 +27,31 @@ MockDevice::MockDevice() = default;
MockDevice::~MockDevice() = default;
+void MockDevice::SendStubFrame(const media::VideoCaptureFormat& format,
+ int rotation,
+ int frame_id) {
+ auto stub_frame = media::VideoFrame::CreateZeroInitializedFrame(
+ format.pixel_format, format.frame_size,
+ gfx::Rect(format.frame_size.width(), format.frame_size.height()),
+ format.frame_size, base::TimeDelta());
+ client_->OnIncomingCapturedData(
+ stub_frame->data(0),
+ static_cast<int>(media::VideoFrame::AllocationSize(
+ stub_frame->format(), stub_frame->coded_size())),
+ format, rotation, base::TimeTicks(), base::TimeDelta(), frame_id);
+}
+
void MockDevice::AllocateAndStart(const media::VideoCaptureParams& params,
std::unique_ptr<Client> client) {
+ client_ = std::move(client);
DoAllocateAndStart(params, &client);
}
+void MockDevice::StopAndDeAllocate() {
+ DoStopAndDeAllocate();
+ client_.reset();
+}
+
void MockDevice::GetPhotoCapabilities(GetPhotoCapabilitiesCallback callback) {
DoGetPhotoCapabilities(&callback);
}
@@ -51,9 +76,11 @@ void MockDeviceTest::SetUp() {
// invoke its AddMockDevice(). Ownership of the MockDeviceFactory is moved
// to the DeviceFactoryMediaToMojoAdapter.
mock_device_factory_ = mock_device_factory.get();
+ auto video_capture_system = base::MakeUnique<media::VideoCaptureSystemImpl>(
+ std::move(mock_device_factory));
mock_device_factory_adapter_ =
base::MakeUnique<DeviceFactoryMediaToMojoAdapter>(
- std::move(mock_device_factory), base::Bind(CreateJpegDecoder));
+ std::move(video_capture_system), base::Bind(CreateJpegDecoder));
mock_factory_binding_ = base::MakeUnique<mojo::Binding<mojom::DeviceFactory>>(
mock_device_factory_adapter_.get(), mojo::MakeRequest(&factory_));
@@ -63,6 +90,13 @@ void MockDeviceTest::SetUp() {
mock_device_factory_->AddMockDevice(&mock_device_, mock_descriptor);
// Obtain the mock device from the factory
+ base::RunLoop wait_loop;
+ EXPECT_CALL(device_infos_receiver_, Run(_))
+ .WillOnce(InvokeWithoutArgs([&wait_loop]() { wait_loop.Quit(); }));
+ factory_->GetDeviceInfos(device_infos_receiver_.Get());
+ // We must wait for the response to GetDeviceInfos before calling
+ // CreateDevice.
+ wait_loop.Run();
factory_->CreateDevice(
mock_descriptor.device_id, mojo::MakeRequest(&device_proxy_),
base::Bind([](mojom::DeviceAccessResultCode result_code) {}));
« no previous file with comments | « services/video_capture/test/mock_device_test.h ('k') | services/video_capture/test/mock_device_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698