| Index: LayoutTests/fast/canvas/script-tests/canvas-isPointInStroke-with-path.js
|
| diff --git a/LayoutTests/fast/canvas/script-tests/canvas-isPointInStroke-with-path.js b/LayoutTests/fast/canvas/script-tests/canvas-isPointInStroke-with-path.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..162749b323d13bedf9b3c956c2052855ed6b9039
|
| --- /dev/null
|
| +++ b/LayoutTests/fast/canvas/script-tests/canvas-isPointInStroke-with-path.js
|
| @@ -0,0 +1,107 @@
|
| +description("Test the behavior of isPointInStroke in Canvas with path object");
|
| +var ctx = document.createElement('canvas').getContext('2d');
|
| +
|
| +document.body.appendChild(ctx.canvas);
|
| +
|
| +ctx.strokeStyle = '#0ff';
|
| +
|
| +// Create new path.
|
| +var path = new Path();
|
| +path.rect(20,20,100,100);
|
| +
|
| +debug("Initial behavior: lineWidth = 1.0")
|
| +shouldBeTrue("ctx.isPointInStroke(path,20,20)");
|
| +shouldBeTrue("ctx.isPointInStroke(path,120,20)");
|
| +shouldBeTrue("ctx.isPointInStroke(path,20,120)");
|
| +shouldBeTrue("ctx.isPointInStroke(path,120,120)");
|
| +shouldBeTrue("ctx.isPointInStroke(path,70,20)");
|
| +shouldBeTrue("ctx.isPointInStroke(path,20,70)");
|
| +shouldBeTrue("ctx.isPointInStroke(path,120,70)");
|
| +shouldBeTrue("ctx.isPointInStroke(path,70,120)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,22,22)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,118,22)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,22,118)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,118,118)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,70,18)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,122,70)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,70,122)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,18,70)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,NaN,122)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,18,NaN)");
|
| +debug("");
|
| +
|
| +debug("Check null and invalid type");
|
| +shouldThrow("ctx.isPointInStroke(null,70,20)");
|
| +shouldThrow("ctx.isPointInStroke([],20,70)");
|
| +shouldThrow("ctx.isPointInStroke({},120,70)");
|
| +debug("");
|
| +
|
| +debug("Set lineWidth = 10.0");
|
| +ctx.lineWidth = 10;
|
| +shouldBeTrue("ctx.isPointInStroke(path,22,22)");
|
| +shouldBeTrue("ctx.isPointInStroke(path,118,22)");
|
| +shouldBeTrue("ctx.isPointInStroke(path,22,118)");
|
| +shouldBeTrue("ctx.isPointInStroke(path,118,118)");
|
| +shouldBeTrue("ctx.isPointInStroke(path,70,18)");
|
| +shouldBeTrue("ctx.isPointInStroke(path,122,70)");
|
| +shouldBeTrue("ctx.isPointInStroke(path,70,122)");
|
| +shouldBeTrue("ctx.isPointInStroke(path,18,70)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,26,70)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,70,26)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,70,114)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,114,70)");
|
| +debug("");
|
| +
|
| +debug("Check lineJoin = 'bevel'");
|
| +path = new Path();
|
| +path.moveTo(10,10);
|
| +path.lineTo(110,20);
|
| +path.lineTo(10,30);
|
| +ctx.lineJoin = "bevel";
|
| +shouldBeFalse("ctx.isPointInStroke(path,113,20)");
|
| +debug("");
|
| +
|
| +debug("Check lineJoin = 'miter'");
|
| +ctx.miterLimit = 40.0;
|
| +ctx.lineJoin = "miter";
|
| +shouldBeTrue("ctx.isPointInStroke(path,113,20)");
|
| +debug("");
|
| +
|
| +debug("Check miterLimit = 2.0");
|
| +ctx.miterLimit = 2.0;
|
| +shouldBeFalse("ctx.isPointInStroke(path,113,20)");
|
| +debug("");
|
| +
|
| +debug("Check lineCap = 'butt'");
|
| +path = new Path();
|
| +path.moveTo(10,10);
|
| +path.lineTo(110,10);
|
| +ctx.lineCap = "butt";
|
| +shouldBeFalse("ctx.isPointInStroke(path,112,10)");
|
| +debug("");
|
| +
|
| +debug("Check lineCap = 'round'");
|
| +ctx.lineCap = "round";
|
| +shouldBeTrue("ctx.isPointInStroke(path,112,10)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,117,10)");
|
| +debug("");
|
| +
|
| +debug("Check lineCap = 'square'");
|
| +ctx.lineCap = "square";
|
| +shouldBeTrue("ctx.isPointInStroke(path,112,10)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,117,10)");
|
| +debug("");
|
| +
|
| +debug("Check setLineDash([10,10])");
|
| +ctx.lineCap = "butt";
|
| +ctx.setLineDash([10,10]);
|
| +shouldBeTrue("ctx.isPointInStroke(path,15,10)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,25,10)");
|
| +shouldBeTrue("ctx.isPointInStroke(path,35,10)");
|
| +debug("");
|
| +
|
| +debug("Check dashOffset = 10");
|
| +ctx.lineDashOffset = 10;
|
| +shouldBeFalse("ctx.isPointInStroke(path,15,10)");
|
| +shouldBeTrue("ctx.isPointInStroke(path,25,10)");
|
| +shouldBeFalse("ctx.isPointInStroke(path,35,10)");
|
|
|