gecko/content/canvas/test/test_drawWindow.html
L. David Baron b5bb8d4250 Bug 995661 patch 3 - Add mochitest for canvas drawWindow. r=mattwoodrow
This test covers some basic cases, such as drawing the complete window
to a canvas of the same size, drawing a part of the window to a
different offset within the canvas, drawing parts of the window against
different backgrounds and against a transparent background, and doing
multiple such drawWindow calls on the same canvas.

It runs its tests both with an iframe (whose background is transparent)
and content in a new window (which has a white backdrop).

Bug 995721 will add further tests (in mochitest-chrome) that exercise
drawWindow from a toplevel chrome window, which exercises the
DRAWWINDOW_USE_WIDGET_LAYERS codepath, which these tests do not.

The final 4 tests in each set of 7 fail without patch 2 in this bug.
2014-04-14 11:12:00 -07:00

56 lines
1.8 KiB
HTML

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Test for canvas drawWindow</title>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="application/javascript" src="/tests/SimpleTest/WindowSnapshot.js"></script>
<script type="application/javascript" src="file_drawWindow_common.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
<script type="application/javascript">
SimpleTest.waitForExplicitFinish();
window.addEventListener("load", openSourceWindow, false);
var sourceWindow;
function openSourceWindow(event) {
if (event.target != document) {
return;
}
sourceWindow = window.open("file_drawWindow_source.html", "",
"width=200,height=100");
sourceWindow.addEventListener("load", runTests, false);
}
function runTests(event) {
if (event.target != sourceWindow.document) {
return;
}
// Run the tests with the source document in an <iframe> within this
// page, which we expect to have transparency.
runDrawWindowTests(document.getElementById("source").contentWindow,
0, true);
// Run the tests on the same source document, but in a window opened
// by window.open. We do not expect this to have transparency...
// except on B2G. (This is *probably* a bug in B2G.)
var isB2G = /Mobile|Tablet/.test(navigator.userAgent) &&
!navigator.userAgent.contains("Android");
runDrawWindowTests(sourceWindow, 0, isB2G);
sourceWindow.close();
SimpleTest.finish();
}
</script>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=">Mozilla Bug </a>
<iframe id="source" src="file_drawWindow_source.html" width="200" height="100"></iframe>
</body>
</html>