1// Copyright 2013 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#include "base/command_line.h"
6#include "content/browser/gpu/browser_gpu_channel_host_factory.h"
7#include "content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.h"
8#include "content/public/common/content_switches.h"
9#include "content/test/content_browser_test.h"
10#include "ui/gl/gl_switches.h"
11#include "webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.h"
12
13namespace {
14
15class ContextTestBase : public content::ContentBrowserTest {
16 public:
17  virtual void SetUpOnMainThread() OVERRIDE {
18    CHECK(content::BrowserGpuChannelHostFactory::instance());
19    context_.reset(
20        content::WebGraphicsContext3DCommandBufferImpl::CreateOffscreenContext(
21            content::BrowserGpuChannelHostFactory::instance(),
22            WebKit::WebGraphicsContext3D::Attributes(),
23            GURL()));
24    CHECK(context_.get());
25    context_->makeContextCurrent();
26    ContentBrowserTest::SetUpOnMainThread();
27  }
28
29  virtual void TearDownOnMainThread() OVERRIDE {
30    // Must delete the context first.
31    context_.reset(NULL);
32    ContentBrowserTest::TearDownOnMainThread();
33  }
34
35 protected:
36  scoped_ptr<WebKit::WebGraphicsContext3D> context_;
37};
38
39}  // namespace
40
41// Include the actual tests.
42#define CONTEXT_TEST_F IN_PROC_BROWSER_TEST_F
43#include "content/common/gpu/client/gpu_context_tests.h"
44