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

Side by Side Diff: media/capture/video/chromeos/mock_camera_module.h

Issue 2837273004: media: add video capture device for ARC++ camera HAL v3 (Closed)
Patch Set: add more device delegate test cases Created 3 years, 6 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef MEDIA_CAPTURE_VIDEO_CHROMEOS_MOCK_CAMERA_MODULE_H_
6 #define MEDIA_CAPTURE_VIDEO_CHROMEOS_MOCK_CAMERA_MODULE_H_
7
8 #include <stddef.h>
9 #include <stdint.h>
10
11 #include <memory>
12 #include <utility>
13
14 #include "base/threading/thread.h"
15 #include "media/capture/video/chromeos/mojo/arc_camera3.mojom.h"
16 #include "testing/gmock/include/gmock/gmock.h"
17
18 namespace media {
19 namespace unittest_internal {
20
21 class MockCameraModule : public arc::mojom::CameraModule {
22 public:
23 MockCameraModule() : mock_module_thread_("MockModuleThread"), binding_(this) {
24 mock_module_thread_.Start();
25 }
26
27 ~MockCameraModule() {
28 mock_module_thread_.task_runner()->PostTask(
29 FROM_HERE, base::Bind(&MockCameraModule::CloseBindingOnThread,
30 base::Unretained(this)));
31 mock_module_thread_.Stop();
32 }
33
34 void OpenDevice(int32_t camera_id,
35 arc::mojom::Camera3DeviceOpsRequest device_ops_request,
36 OpenDeviceCallback callback) override {
37 DoOpenDevice(camera_id, device_ops_request, callback);
38 }
39 MOCK_METHOD3(DoOpenDevice,
40 void(int32_t camera_id,
41 arc::mojom::Camera3DeviceOpsRequest& device_ops_request,
42 OpenDeviceCallback& callback));
43
44 void GetNumberOfCameras(GetNumberOfCamerasCallback callback) override {
45 DoGetNumberOfCameras(callback);
46 }
47 MOCK_METHOD1(DoGetNumberOfCameras,
48 void(GetNumberOfCamerasCallback& callback));
49
50 void GetCameraInfo(int32_t camera_id,
51 GetCameraInfoCallback callback) override {
52 DoGetCameraInfo(camera_id, callback);
53 }
54 MOCK_METHOD2(DoGetCameraInfo,
55 void(int32_t camera_id, GetCameraInfoCallback& callback));
56
57 void SetCallbacks(arc::mojom::CameraModuleCallbacksPtr callbacks,
58 SetCallbacksCallback callback) override {
59 DoSetCallbacks(callbacks, callback);
60 callbacks_ = std::move(callbacks);
61 std::move(callback).Run(0);
62 }
63 MOCK_METHOD2(DoSetCallbacks,
64 void(arc::mojom::CameraModuleCallbacksPtr& callbacks,
65 SetCallbacksCallback& callback));
66
67 arc::mojom::CameraModulePtrInfo GetInterfacePtrInfo() {
68 base::WaitableEvent done(base::WaitableEvent::ResetPolicy::MANUAL,
69 base::WaitableEvent::InitialState::NOT_SIGNALED);
70 arc::mojom::CameraModulePtrInfo ptr_info;
71 mock_module_thread_.task_runner()->PostTask(
72 FROM_HERE,
73 base::Bind(&MockCameraModule::BindOnThread, base::Unretained(this),
74 base::Unretained(&done), base::Unretained(&ptr_info)));
75 done.Wait();
76 return ptr_info;
77 }
78
79 private:
80 void CloseBindingOnThread() {
81 if (binding_.is_bound()) {
82 binding_.Close();
83 }
84 }
85
86 void BindOnThread(base::WaitableEvent* done,
87 arc::mojom::CameraModulePtrInfo* ptr_info) {
88 *ptr_info = binding_.CreateInterfacePtrAndBind().PassInterface();
89 done->Signal();
90 }
91
92 base::Thread mock_module_thread_;
93 mojo::Binding<arc::mojom::CameraModule> binding_;
94 arc::mojom::CameraModuleCallbacksPtr callbacks_;
95
96 DISALLOW_COPY_AND_ASSIGN(MockCameraModule);
97 };
98
99 } // namespace unittest_internal
100 } // namespace media
101
102 #endif // MEDIA_CAPTURE_VIDEO_CHROMEOS_MOCK_CAMERA_MODULE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698