blob: d4c2c3bcd92344a8531e5d6b5997e17522df674f [file] [log] [blame]
// Copyright (c) 2011 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.
#include <string>
#include "build/build_config.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/test/base/test_launcher_utils.h"
#include "chrome/test/ui/ui_test.h"
#include "net/base/net_util.h"
#include "ui/gfx/gl/gl_implementation.h"
class GPUUITest : public UITest {
protected:
GPUUITest() {
}
virtual void SetUp() {
EXPECT_TRUE(test_launcher_utils::OverrideGLImplementation(
&launch_arguments_,
gfx::kGLImplementationOSMesaName));
#if defined(OS_MACOSX)
// Accelerated compositing does not work with OSMesa. AcceleratedSurface
// assumes GL contexts are native.
launch_arguments_.AppendSwitch(switches::kDisableAcceleratedCompositing);
#endif
UITest::SetUp();
gpu_test_dir_ = test_data_directory_.AppendASCII("gpu");
}
FilePath gpu_test_dir_;
};
#if !defined(OS_WIN) && defined(TOOLKIT_VIEWS)
#define UITestCanLaunchWithOSMesa DISABLED_UITestCanLaunchWithOSMesa
// http://crbug.com/76217
#endif
TEST_F(GPUUITest, UITestCanLaunchWithOSMesa) {
// Check the webgl test reports success and that the renderer was OSMesa.
NavigateToURL(
net::FilePathToFileURL(gpu_test_dir_.AppendASCII("webgl.html")));
EXPECT_EQ(std::wstring(L"SUCCESS: Mesa OffScreen"), GetActiveTabTitle());
}