| Index: media/capture/video/chromeos/camera_hal_delegate_unittest.h
|
| diff --git a/media/capture/video/chromeos/camera_hal_delegate_unittest.h b/media/capture/video/chromeos/camera_hal_delegate_unittest.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b8562ad79fe4048b55cafceb17ba4cc58044e3f9
|
| --- /dev/null
|
| +++ b/media/capture/video/chromeos/camera_hal_delegate_unittest.h
|
| @@ -0,0 +1,98 @@
|
| +// Copyright 2017 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef MEDIA_CAPTURE_VIDEO_CHROMEOS_CAMERA_HAL_DELEGATE_UNITTEST_H_
|
| +#define MEDIA_CAPTURE_VIDEO_CHROMEOS_CAMERA_HAL_DELEGATE_UNITTEST_H_
|
| +
|
| +#include "media/capture/video/chromeos/camera_hal_delegate.h"
|
| +
|
| +#include <stddef.h>
|
| +#include <stdint.h>
|
| +
|
| +#include <memory>
|
| +#include <utility>
|
| +
|
| +#include "media/capture/video/chromeos/mojo/arc_camera3.mojom.h"
|
| +#include "testing/gmock/include/gmock/gmock.h"
|
| +
|
| +namespace media {
|
| +namespace unittest_internal {
|
| +
|
| +class MockCameraModule : public arc::mojom::CameraModule {
|
| + public:
|
| + MockCameraModule() : mock_module_thread_("MockModuleThread"), binding_(this) {
|
| + mock_module_thread_.Start();
|
| + }
|
| +
|
| + ~MockCameraModule() {
|
| + mock_module_thread_.task_runner()->PostTask(
|
| + FROM_HERE, base::Bind(&MockCameraModule::CloseBindingOnThread,
|
| + base::Unretained(this)));
|
| + mock_module_thread_.Stop();
|
| + }
|
| +
|
| + void OpenDevice(int32_t camera_id, OpenDeviceCallback callback) {
|
| + DoOpenDevice(camera_id, callback);
|
| + }
|
| + MOCK_METHOD2(DoOpenDevice,
|
| + void(int32_t camera_id, OpenDeviceCallback& callback));
|
| +
|
| + void GetNumberOfCameras(GetNumberOfCamerasCallback callback) {
|
| + DoGetNumberOfCameras(callback);
|
| + }
|
| + MOCK_METHOD1(DoGetNumberOfCameras,
|
| + void(GetNumberOfCamerasCallback& callback));
|
| +
|
| + void GetCameraInfo(int32_t camera_id, GetCameraInfoCallback callback) {
|
| + DoGetCameraInfo(camera_id, callback);
|
| + }
|
| + MOCK_METHOD2(DoGetCameraInfo,
|
| + void(int32_t camera_id, GetCameraInfoCallback& callback));
|
| +
|
| + void SetCallbacks(arc::mojom::CameraModuleCallbacksPtr callbacks,
|
| + SetCallbacksCallback callback) override {
|
| + DoSetCallbacks(callbacks, callback);
|
| + callbacks_ = std::move(callbacks);
|
| + std::move(callback).Run(0);
|
| + }
|
| + MOCK_METHOD2(DoSetCallbacks,
|
| + void(arc::mojom::CameraModuleCallbacksPtr& callbacks,
|
| + SetCallbacksCallback& callback));
|
| +
|
| + arc::mojom::CameraModulePtrInfo GetInterfacePtrInfo() {
|
| + base::WaitableEvent done(base::WaitableEvent::ResetPolicy::MANUAL,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| + arc::mojom::CameraModulePtrInfo ptr_info;
|
| + mock_module_thread_.task_runner()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&MockCameraModule::BindOnThread, base::Unretained(this),
|
| + base::Unretained(&done), base::Unretained(&ptr_info)));
|
| + done.Wait();
|
| + return ptr_info;
|
| + }
|
| +
|
| + private:
|
| + void CloseBindingOnThread() {
|
| + if (binding_.is_bound()) {
|
| + binding_.Close();
|
| + }
|
| + }
|
| +
|
| + void BindOnThread(base::WaitableEvent* done,
|
| + arc::mojom::CameraModulePtrInfo* ptr_info) {
|
| + *ptr_info = binding_.CreateInterfacePtrAndBind().PassInterface();
|
| + done->Signal();
|
| + }
|
| +
|
| + base::Thread mock_module_thread_;
|
| + mojo::Binding<arc::mojom::CameraModule> binding_;
|
| + arc::mojom::CameraModuleCallbacksPtr callbacks_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(MockCameraModule);
|
| +};
|
| +
|
| +} // namespace unittest_internal
|
| +} // namespace media
|
| +
|
| +#endif // MEDIA_CAPTURE_VIDEO_CHROMEOS_CAMERA_HAL_DELEGATE_UNITTEST_H_
|
|
|