summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorapatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-26 02:59:52 +0000
committerapatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-26 02:59:52 +0000
commit466645f7eac5bce3e48e9bcf5fa1e004a60ea0d7 (patch)
tree3b33af460b974a98dc04b42a87271924610df99a
parent2b0caae5cf87e861f12a669ad1ed36950c6bddbd (diff)
downloadchromium_src-466645f7eac5bce3e48e9bcf5fa1e004a60ea0d7.zip
chromium_src-466645f7eac5bce3e48e9bcf5fa1e004a60ea0d7.tar.gz
chromium_src-466645f7eac5bce3e48e9bcf5fa1e004a60ea0d7.tar.bz2
Added browser tests to ensure WebGL and 2D canvas can render to a newly opened window.
Review URL: http://codereview.chromium.org/7470003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94026 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/gpu_browsertest.cc (renamed from chrome/test/gpu/gpu_browsertest.cc)27
-rw-r--r--chrome/browser/gpu_uitest.cc (renamed from chrome/test/gpu/gpu_uitest.cc)0
-rw-r--r--chrome/chrome_tests.gypi4
-rw-r--r--chrome/test/data/gpu/canvas_popup.html33
-rw-r--r--chrome/test/data/gpu/webgl_popup.html30
5 files changed, 92 insertions, 2 deletions
diff --git a/chrome/test/gpu/gpu_browsertest.cc b/chrome/browser/gpu_browsertest.cc
index d3d6879..4c86370 100644
--- a/chrome/test/gpu/gpu_browsertest.cc
+++ b/chrome/browser/gpu_browsertest.cc
@@ -21,6 +21,7 @@
class GPUBrowserTest : public InProcessBrowserTest {
protected:
GPUBrowserTest() {
+ EnableDOMAutomation();
}
virtual void SetUpInProcessBrowserTestFixture() {
@@ -36,6 +37,8 @@ class GPUBrowserTest : public InProcessBrowserTest {
command_line,
gfx::kGLImplementationOSMesaName));
+ command_line->AppendSwitch(switches::kDisablePopupBlocking);
+
#if defined(OS_MACOSX)
// Accelerated compositing does not work with OSMesa. AcceleratedSurface
// assumes GL contexts are native.
@@ -63,3 +66,27 @@ IN_PROC_BROWSER_TEST_F(GPUBrowserTest, MAYBE_BrowserTestCanLaunchWithOSMesa) {
EXPECT_EQ(ASCIIToUTF16("SUCCESS: Mesa OffScreen"),
browser()->GetSelectedTabContents()->GetTitle());
}
+
+IN_PROC_BROWSER_TEST_F(GPUBrowserTest, CanOpenPopupAndRenderWithWebGLCanvas) {
+ ui_test_utils::DOMMessageQueue message_queue;
+
+ ui_test_utils::NavigateToURL(
+ browser(),
+ net::FilePathToFileURL(gpu_test_dir_.AppendASCII("webgl_popup.html")));
+
+ std::string result;
+ ASSERT_TRUE(message_queue.WaitForMessage(&result));
+ EXPECT_EQ("\"SUCCESS\"", result);
+}
+
+IN_PROC_BROWSER_TEST_F(GPUBrowserTest, CanOpenPopupAndRenderWith2DCanvas) {
+ ui_test_utils::DOMMessageQueue message_queue;
+
+ ui_test_utils::NavigateToURL(
+ browser(),
+ net::FilePathToFileURL(gpu_test_dir_.AppendASCII("canvas_popup.html")));
+
+ std::string result;
+ ASSERT_TRUE(message_queue.WaitForMessage(&result));
+ EXPECT_EQ("\"SUCCESS\"", result);
+}
diff --git a/chrome/test/gpu/gpu_uitest.cc b/chrome/browser/gpu_uitest.cc
index 65b738e..65b738e 100644
--- a/chrome/test/gpu/gpu_uitest.cc
+++ b/chrome/browser/gpu_uitest.cc
diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi
index 06814af..fb3cab3 100644
--- a/chrome/chrome_tests.gypi
+++ b/chrome/chrome_tests.gypi
@@ -679,6 +679,7 @@
'browser/download/save_page_uitest.cc',
'browser/errorpage_uitest.cc',
'browser/default_plugin_uitest.cc',
+ 'browser/gpu_uitest.cc',
'browser/history/multipart_uitest.cc',
'browser/history/redirect_uitest.cc',
'browser/iframe_uitest.cc',
@@ -712,7 +713,6 @@
'test/automation/extension_proxy_uitest.cc',
'test/automated_ui_tests/automated_ui_test_test.cc',
'test/chrome_process_util_uitest.cc',
- 'test/gpu/gpu_uitest.cc',
'test/ui/dom_checker_uitest.cc', # moving to performance_ui_tests
'test/ui/dromaeo_benchmark_uitest.cc',
'test/ui/history_uitest.cc',
@@ -2547,6 +2547,7 @@
'browser/first_run/first_run_browsertest.cc',
'browser/geolocation/access_token_store_browsertest.cc',
'browser/geolocation/geolocation_browsertest.cc',
+ 'browser/gpu_browsertest.cc',
'browser/ui/gtk/view_id_util_browsertest.cc',
'browser/history/history_browsertest.cc',
'browser/idbbindingutilities_browsertest.cc',
@@ -2620,7 +2621,6 @@
'test/data/webui/assertions.js',
'test/data/webui/print_preview.js',
'test/data/webui/options.js',
- 'test/gpu/gpu_browsertest.cc',
'test/in_process_browser_test_browsertest.cc',
'test/out_of_proc_test_runner.cc',
'test/render_view_test.cc',
diff --git a/chrome/test/data/gpu/canvas_popup.html b/chrome/test/data/gpu/canvas_popup.html
new file mode 100644
index 0000000..80e0db3
--- /dev/null
+++ b/chrome/test/data/gpu/canvas_popup.html
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<script>
+function popup() {
+ var w = window.open("","","width=200,height=200");
+ var canvas = w.document.createElement("canvas");
+ canvas.width = 100;
+ canvas.height = 100;
+ w.document.body.appendChild(canvas);
+
+ var ctx = canvas.getContext('2d');
+ ctx.fillStyle = "rgb(255,165,0)";
+ ctx.fillRect(0, 0, 100, 100);
+
+ var imageData = ctx.getImageData(50, 50, 1, 1);
+ document.title = imageData.data[0] + ", " +
+ imageData.data[1] + ", " +
+ imageData.data[2];
+
+ window.domAutomationController.setAutomationId(1);
+ if (imageData.data[0] == 255 &&
+ imageData.data[1] == 165 &&
+ imageData.data[2] == 0)
+ window.domAutomationController.send("SUCCESS");
+ else
+ window.domAutomationController.send("FAILED");
+}
+</script>
+</head>
+<body onload="popup()">
+</body>
+</html>
diff --git a/chrome/test/data/gpu/webgl_popup.html b/chrome/test/data/gpu/webgl_popup.html
new file mode 100644
index 0000000..7f264e4
--- /dev/null
+++ b/chrome/test/data/gpu/webgl_popup.html
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<script type="text/javascript">
+function popup() {
+ var w = window.open("","","width=200,height=200");
+ var canvas = w.document.createElement("canvas");
+ canvas.width = 100;
+ canvas.height = 100;
+ w.document.body.appendChild(canvas);
+
+ var gl = canvas.getContext("experimental-webgl");
+ gl.clearColor(1.0, 0.0, 0.0, 1.0);
+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
+
+ var a = new Uint8Array(4);
+ gl.readPixels(50, 50, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, a);
+ document.title = a[0] + ", " + a[1] + ", " + a[2];
+
+ window.domAutomationController.setAutomationId(1);
+ if (a[0] == 255 && a[1] == 0 && a[2] == 0)
+ window.domAutomationController.send("SUCCESS");
+ else
+ window.domAutomationController.send("FAILED");
+}
+</script>
+</head>
+<body onload="popup()">
+</body>
+</html>