1f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// found in the LICENSE file.
4f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
5f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#ifndef GPU_COMMAND_BUFFER_SERVICE_GPU_SERVICE_TEST_H_
6f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define GPU_COMMAND_BUFFER_SERVICE_GPU_SERVICE_TEST_H_
7f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
8f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "base/memory/ref_counted.h"
9f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "base/memory/scoped_ptr.h"
10f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "testing/gmock/include/gmock/gmock.h"
11f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
12f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "ui/gl/gl_mock.h"
13f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
14f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)namespace gfx {
15f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)class GLContextStubWithExtensions;
16f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
17f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
18f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)namespace gpu {
19f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)namespace gles2 {
20f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
21f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Base class for tests that need mock GL bindings.
22f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)class GpuServiceTest : public testing::Test {
23f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) public:
24f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  GpuServiceTest();
25f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  virtual ~GpuServiceTest();
26f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
27f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) protected:
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  void SetUpWithGLVersion(const char* gl_version, const char* gl_extensions);
29f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  virtual void SetUp() OVERRIDE;
30f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  virtual void TearDown() OVERRIDE;
31f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
32f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  scoped_ptr< ::testing::StrictMock< ::gfx::MockGLInterface> > gl_;
33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
34f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) private:
35f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  bool ran_setup_;
36f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  bool ran_teardown_;
37f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  scoped_refptr<gfx::GLContextStubWithExtensions> context_;
38f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)};
39f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
40f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}  // namespace gles2
41f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}  // namespace gpu
42f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
43f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#endif  // GPU_COMMAND_BUFFER_SERVICE_MAILBOX_SYNCHRONIZER_H_
44