| Index: LayoutTests/fast/canvas/script-tests/canvas-pattern-set-transform.js
|
| diff --git a/LayoutTests/fast/canvas/script-tests/canvas-pattern-set-transform.js b/LayoutTests/fast/canvas/script-tests/canvas-pattern-set-transform.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..76fa74096ac93fb5f2bd3dcc9218d1c5ab227638
|
| --- /dev/null
|
| +++ b/LayoutTests/fast/canvas/script-tests/canvas-pattern-set-transform.js
|
| @@ -0,0 +1,61 @@
|
| +description("Test for supporting setTransform on canvas patterns");
|
| +
|
| +function pixelValueAt(context, x, y) {
|
| + var imageData = context.getImageData(x, y, 1, 1);
|
| + return imageData.data;
|
| +}
|
| +
|
| +function pixelToString(p) {
|
| + return "[" + p[0] + ", " + p[1] + ", " + p[2] + ", " + p[3] + "]"
|
| +}
|
| +
|
| +function pixelShouldBe(context, x, y, expectedPixelString) {
|
| + var pixel = pixelValueAt(context, x, y);
|
| + var expectedPixel = eval(expectedPixelString);
|
| +
|
| + var pixelString = "pixel " + x + ", " + y;
|
| + if (areArraysEqual(pixel, expectedPixel)) {
|
| + testPassed(pixelString + " is " + pixelToString(pixel));
|
| + } else {
|
| + testFailed(pixelString + " should be " + pixelToString(expectedPixel) + " was " + pixelToString(pixel));
|
| + }
|
| +}
|
| +
|
| +function fillWithColor(context, canvas, color1, color2) {
|
| + context.save();
|
| + context.fillStyle = color1;
|
| + context.fillRect(0, 0, canvas.width / 2, canvas.height);
|
| + context.fillStyle = color2;
|
| + context.fillRect(canvas.width / 2, 0, canvas.width / 2, canvas.height);
|
| + context.restore();
|
| +}
|
| +
|
| +var canvas = document.createElement("canvas");
|
| +canvas.height = 100;
|
| +canvas.width = 100;
|
| +canvas.style.height = "100";
|
| +canvas.style.width = "100";
|
| +
|
| +document.body.appendChild(canvas);
|
| +
|
| +var patternImage = document.createElement("canvas");
|
| +patternImage.height = 10;
|
| +patternImage.width = 20;
|
| +var patternImageCtx = patternImage.getContext('2d');
|
| +fillWithColor(patternImageCtx, patternImage, "red", "green");
|
| +var greenPixel = pixelValueAt(patternImageCtx, 10, 0);
|
| +
|
| +
|
| +var ctx = canvas.getContext('2d');
|
| +var pattern = ctx.createPattern(patternImage, "repeat-x");
|
| +var svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
| +var matrix = svgElement.createSVGMatrix();
|
| +matrix = matrix.translate(10, 0);
|
| +pattern.setTransform(matrix);
|
| +
|
| +fillWithColor(ctx, canvas, "blue", "blue");
|
| +
|
| +ctx.fillStyle = pattern;
|
| +ctx.translate(20, 20);
|
| +ctx.fillRect(0, 0, 10, 10);
|
| +pixelShouldBe(ctx, 20, 20, "greenPixel");
|
|
|