diff options
author | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-26 02:59:52 +0000 |
---|---|---|
committer | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-26 02:59:52 +0000 |
commit | 466645f7eac5bce3e48e9bcf5fa1e004a60ea0d7 (patch) | |
tree | 3b33af460b974a98dc04b42a87271924610df99a | |
parent | 2b0caae5cf87e861f12a669ad1ed36950c6bddbd (diff) | |
download | chromium_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.gypi | 4 | ||||
-rw-r--r-- | chrome/test/data/gpu/canvas_popup.html | 33 | ||||
-rw-r--r-- | chrome/test/data/gpu/webgl_popup.html | 30 |
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> |