summaryrefslogtreecommitdiff
path: root/chromium/media/capture/video/mock_gpu_memory_buffer_manager.h
blob: d617825ef3f05704e80c053b75e9dcf95264a7f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// 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_MOCK_GPU_MEMORY_BUFFER_MANAGER_H_
#define MEDIA_CAPTURE_VIDEO_MOCK_GPU_MEMORY_BUFFER_MANAGER_H_

#include "gpu/command_buffer/client/gpu_memory_buffer_manager.h"
#include "gpu/command_buffer/common/sync_token.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "ui/gfx/color_space.h"

namespace media {
namespace unittest_internal {

class MockGpuMemoryBufferManager : public gpu::GpuMemoryBufferManager {
 public:
  MockGpuMemoryBufferManager();

  ~MockGpuMemoryBufferManager() override;

  MOCK_METHOD5(CreateGpuMemoryBuffer,
               std::unique_ptr<gfx::GpuMemoryBuffer>(
                   const gfx::Size& size,
                   gfx::BufferFormat format,
                   gfx::BufferUsage usage,
                   gpu::SurfaceHandle surface_handle,
                   base::WaitableEvent* shutdown_event));

  MOCK_METHOD2(SetDestructionSyncToken,
               void(gfx::GpuMemoryBuffer* buffer,
                    const gpu::SyncToken& sync_token));

  MOCK_METHOD3(CopyGpuMemoryBufferAsync,
               void(gfx::GpuMemoryBufferHandle buffer_handle,
                    base::UnsafeSharedMemoryRegion memory_region,
                    base::OnceCallback<void(bool)> callback));

  MOCK_METHOD2(CopyGpuMemoryBufferSync,
               bool(gfx::GpuMemoryBufferHandle buffer_handle,
                    base::UnsafeSharedMemoryRegion memory_region));

  static std::unique_ptr<gfx::GpuMemoryBuffer> CreateFakeGpuMemoryBuffer(
      const gfx::Size& size,
      gfx::BufferFormat format,
      gfx::BufferUsage usage,
      gpu::SurfaceHandle surface_handle,
      base::WaitableEvent* shutdown_event);

 private:
  DISALLOW_COPY_AND_ASSIGN(MockGpuMemoryBufferManager);
};

}  // namespace unittest_internal
}  // namespace media

#endif  // MEDIA_CAPTURE_VIDEO_MOCK_GPU_MEMORY_BUFFER_MANAGER_H_