| Index: LayoutTests/fast/canvas/script-tests/canvas-path-addpath.js
|
| diff --git a/LayoutTests/fast/canvas/script-tests/canvas-path-addpath.js b/LayoutTests/fast/canvas/script-tests/canvas-path-addpath.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..02f7ed0d20bf1d8a68b2a4e74f361da8ecebf7e0
|
| --- /dev/null
|
| +++ b/LayoutTests/fast/canvas/script-tests/canvas-path-addpath.js
|
| @@ -0,0 +1,91 @@
|
| +description("Test addPath() method.");
|
| +var ctx = document.createElement('canvas').getContext('2d');
|
| +
|
| +debug("Test addPath() with transform as identity matrix.")
|
| +ctx.beginPath();
|
| +var p1 = new Path();
|
| +p1.rect(0,0,100,100);
|
| +var p2 = new Path();
|
| +p2.rect(0,100,100,100);
|
| +var m = ctx.currentTransform;
|
| +p1.addPath(p2, m);
|
| +ctx.fillStyle = 'yellow';
|
| +ctx.currentPath = p1;
|
| +ctx.fill();
|
| +var imageData = ctx.getImageData(0, 100, 100, 100);
|
| +var imgdata = imageData.data;
|
| +shouldBe("imgdata[4]", "255");
|
| +shouldBe("imgdata[5]", "255");
|
| +shouldBe("imgdata[6]", "0");
|
| +shouldBe("imgdata[7]", "255");
|
| +debug("");
|
| +
|
| +debug("Test addPath() with transform as translate(100, -100).")
|
| +ctx.beginPath();
|
| +var p3 = new Path();
|
| +p3.rect(0,0,100,100);
|
| +var p4 = new Path();
|
| +p4.rect(0,100,100,100);
|
| +m.a = 1; m.b = 0;
|
| +m.c = 0; m.d = 1;
|
| +m.e = 100; m.f = -100;
|
| +p3.addPath(p4, m);
|
| +ctx.fillStyle = 'yellow';
|
| +ctx.currentPath = p3;
|
| +ctx.fill();
|
| +imageData = ctx.getImageData(100, 0, 100, 100);
|
| +imgdata = imageData.data;
|
| +shouldBe("imgdata[4]", "255");
|
| +shouldBe("imgdata[5]", "255");
|
| +shouldBe("imgdata[6]", "0");
|
| +shouldBe("imgdata[7]", "255");
|
| +debug("");
|
| +
|
| +debug("Test addPath() with non-invertible transform.")
|
| +ctx.beginPath();
|
| +var p5 = new Path();
|
| +p5.rect(0,0,100,100);
|
| +var p6 = new Path();
|
| +p6.rect(100,100,100,100);
|
| +m.a = 0; m.b = 0;
|
| +m.c = 0; m.d = 0;
|
| +m.e = 0; m.f = 0;
|
| +p5.addPath(p6, m);
|
| +ctx.fillStyle = 'yellow';
|
| +ctx.currentPath = p5;
|
| +ctx.fill();
|
| +imageData = ctx.getImageData(100, 100, 100, 100);
|
| +imgdata = imageData.data;
|
| +shouldNotBe("imgdata[4]", "255");
|
| +shouldNotBe("imgdata[5]", "255");
|
| +shouldBe("imgdata[6]", "0");
|
| +shouldNotBe("imgdata[7]", "255");
|
| +debug("");
|
| +
|
| +debug("Test addPath() with transform as null or invalid type.")
|
| +ctx.beginPath();
|
| +var p7 = new Path();
|
| +p7.rect(0,0,100,100);
|
| +var p8 = new Path();
|
| +p8.rect(100,100,100,100);
|
| +p7.addPath(p8, null);
|
| +p7.addPath(p8, []);
|
| +p7.addPath(p8, {});
|
| +ctx.fillStyle = 'red';
|
| +ctx.currentPath = p7;
|
| +ctx.fill();
|
| +imageData = ctx.getImageData(100, 100, 100, 100);
|
| +imgdata = imageData.data;
|
| +shouldBe("imgdata[4]", "255");
|
| +shouldBe("imgdata[5]", "0");
|
| +shouldBe("imgdata[6]", "0");
|
| +shouldBe("imgdata[7]", "255");
|
| +debug("");
|
| +
|
| +debug("Test addPath() with path as null and invalid type");
|
| +var p9 = new Path();
|
| +p9.rect(0,0,100,100);
|
| +shouldThrow("p7.addPath(null, m)");
|
| +shouldThrow("p7.addPath([], m)");
|
| +shouldThrow("p7.addPath({}, m)");
|
| +debug("");
|
|
|