summaryrefslogtreecommitdiffstats
path: root/dom/canvas/test/test_2d_composite_canvaspattern_setTransform.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/canvas/test/test_2d_composite_canvaspattern_setTransform.html')
-rw-r--r--dom/canvas/test/test_2d_composite_canvaspattern_setTransform.html75
1 files changed, 75 insertions, 0 deletions
diff --git a/dom/canvas/test/test_2d_composite_canvaspattern_setTransform.html b/dom/canvas/test/test_2d_composite_canvaspattern_setTransform.html
new file mode 100644
index 0000000000..21f15ae3d9
--- /dev/null
+++ b/dom/canvas/test/test_2d_composite_canvaspattern_setTransform.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML>
+<title>Canvas Tests</title>
+<script src="/tests/SimpleTest/SimpleTest.js"></script>
+<link rel="stylesheet" href="/tests/SimpleTest/test.css">
+<body>
+<script>
+
+SimpleTest.waitForExplicitFinish();
+const Cc = SpecialPowers.Cc;
+const Cr = SpecialPowers.Cr;
+
+function isPixel(ctx, x,y, r,g,b,a, d) {
+ var pos = x + "," + y;
+ var colour = r + "," + g + "," + b + "," + a;
+ var pixel = ctx.getImageData(x, y, 1, 1);
+ var pr = pixel.data[0],
+ pg = pixel.data[1],
+ pb = pixel.data[2],
+ pa = pixel.data[3];
+ ok(r-d <= pr && pr <= r+d &&
+ g-d <= pg && pg <= g+d &&
+ b-d <= pb && pb <= b+d &&
+ a-d <= pa && pa <= a+d,
+ "pixel "+pos+" of "+ctx.canvas.id+" is "+pr+","+pg+","+pb+","+pa+"; expected "+colour+" +/- "+d);
+}
+</script>
+
+<p>Canvas test: 2d.composite.canvaspattern.setTransform</p>
+<canvas id="ctx" width="100" height="50"><p class="fallback">FAIL
+(fallback content)</p></canvas>
+<img src="image_rgrg-256x256.png" id="rgrg-256x256.png" width="32"
+height="32" class="resource">
+
+<script>
+
+function test_2d_canvaspattern_setTransform() {
+
+ var canvas = document.getElementById('ctx');
+ var ctx = canvas.getContext('2d');
+ ctx.clearRect(0,0,canvas.width,canvas.height);
+ var img = document.getElementById("rgrg-256x256.png");
+ var pat = ctx.createPattern(img,"repeat");
+
+ var mtx = new DOMMatrix()
+ pat.setTransform(mtx.rotate(-45).scale(0.1));
+ ctx.fillStyle = pat;
+ ctx.fillRect(0, 0, 100, 50);
+
+ // If the pattern doesn't get transformed, or only gets rotated or
+ // scaled, but not both, this will not be green and will fail.
+ isPixel(ctx, 90,14, 0,255,0,255, 0);
+}
+</script>
+
+<script>
+
+function runTests() {
+ try {
+ test_2d_canvaspattern_setTransform();
+ } catch(e) {
+ ok(false, "unexpected exception thrown in: test_2d_canvaspattern_setTransform");
+ throw e;
+ }
+ SimpleTest.finish();
+}
+
+addLoadEvent(function() {
+ SpecialPowers.pushPrefEnv({"set":[["canvas.path.enabled", true]]}, runTests)
+});
+
+// Don't leak the world via the Path2D reference to its window.
+document.all;
+window.p = new Path2D();
+
+</script>