diff options
Diffstat (limited to 'dom/canvas/test/test_drawSnapshot_fixed.html')
-rw-r--r-- | dom/canvas/test/test_drawSnapshot_fixed.html | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/dom/canvas/test/test_drawSnapshot_fixed.html b/dom/canvas/test/test_drawSnapshot_fixed.html new file mode 100644 index 0000000000..968fe0e4e0 --- /dev/null +++ b/dom/canvas/test/test_drawSnapshot_fixed.html @@ -0,0 +1,68 @@ +<!DOCTYPE HTML> +<html> +<head> + <meta charset="utf-8"> + <title>Test for drawSnapshot</title> + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <script src="/tests/SimpleTest/WindowSnapshot.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> + <style> + html { + height: 2000px; + overflow: hidden; + } + header { + position: fixed; + background: red; + display: block; + left: 0; + right: 0; + top: 0; + height: 200px; + } + </style> + <script type="application/javascript"> + function make_canvas() { + var canvas = document.createElement("canvas"); + canvas.setAttribute("height", 2000); + canvas.setAttribute("width", 500); + return canvas; + } + + SimpleTest.waitForExplicitFinish(); + window.addEventListener("load", runTests); + + window.scrollTo(0, 1000); + + async function runTests(event) { + var testCanvas = make_canvas(); + var testCx = testCanvas.getContext("2d"); + var testWrapCx = SpecialPowers.wrap(testCx); + + // Take a snapshot of the page while scrolled down, so that the fixed header will + // be visually in the middle of the root scroll frame, but should still be at the + // top of the snapshot (since snapshots with a rect are taken relative to the document). + var rect = new window.DOMRect(0, 0, 500, 2000); + let image = await SpecialPowers.snapshotContext(window, rect, "rgb(255, 255, 255)", true); + testWrapCx.drawImage(image, 0, 0); + + var refCanvas = make_canvas(); + var refCx = refCanvas.getContext("2d"); + + // Construct a reference image with an equivalent red square at the top. + refCx.fillStyle = "white"; + refCx.fillRect(0, 0, 500, 2000); + refCx.fillStyle = "red"; + refCx.fillRect(0, 0, 500, 200); + + assertSnapshots(testCanvas, refCanvas, true, null, "position:fixed element with scrolling", "reference"); + + SimpleTest.finish(); + } + + </script> +</head> +<body> + <header></header> +</body> +</html> |