103 lines
3.6 KiB
HTML
103 lines
3.6 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<canvas id="canvas" width="200" height="200"></canvas>
|
|
<script>
|
|
description("Series of tests to ensure correct results of isPointInStroke with Path2D argument.");
|
|
|
|
var ctx = document.createElement('canvas').getContext('2d');
|
|
document.body.appendChild(ctx.canvas);
|
|
|
|
ctx.strokeStyle = '#0ff';
|
|
|
|
var path = new Path2D();
|
|
path.rect(20,20,100,100);
|
|
|
|
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)");
|
|
|
|
shouldThrow("ctx.isPointInStroke(null,70,20)");
|
|
shouldThrow("ctx.isPointInStroke([],20,70)");
|
|
shouldThrow("ctx.isPointInStroke({},120,70)");
|
|
shouldThrow("ctx.isPointInPath('path2d', 50, 50)");
|
|
shouldThrow("ctx.isPointInPath(undefined, 50, 50)");
|
|
shouldThrow("ctx.isPointInPath(Number.MAX_VALUE, 50, 50)");
|
|
shouldThrow("ctx.isPointInPath(function() {}, 50, 50)");
|
|
shouldThrow("ctx.isPointInPath(false, 50, 50)");
|
|
shouldThrow("ctx.isPointInPath(new Date(), 50, 50)");
|
|
|
|
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)");
|
|
|
|
path = new Path2D();
|
|
path.moveTo(10,10);
|
|
path.lineTo(110,20);
|
|
path.lineTo(10,30);
|
|
ctx.lineJoin = "bevel";
|
|
shouldBeFalse("ctx.isPointInStroke(path,113,20)");
|
|
|
|
ctx.miterLimit = 40.0;
|
|
ctx.lineJoin = "miter";
|
|
shouldBeTrue("ctx.isPointInStroke(path,113,20)");
|
|
|
|
ctx.miterLimit = 2.0;
|
|
shouldBeFalse("ctx.isPointInStroke(path,113,20)");
|
|
|
|
path = new Path2D();
|
|
path.moveTo(10,10);
|
|
path.lineTo(110,10);
|
|
ctx.lineCap = "butt";
|
|
shouldBeFalse("ctx.isPointInStroke(path,112,10)");
|
|
|
|
ctx.lineCap = "round";
|
|
shouldBeTrue("ctx.isPointInStroke(path,112,10)");
|
|
shouldBeFalse("ctx.isPointInStroke(path,117,10)");
|
|
|
|
ctx.lineCap = "square";
|
|
shouldBeTrue("ctx.isPointInStroke(path,112,10)");
|
|
shouldBeFalse("ctx.isPointInStroke(path,117,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)");
|
|
|
|
ctx.lineDashOffset = 10;
|
|
shouldBeFalse("ctx.isPointInStroke(path,15,10)");
|
|
shouldBeTrue("ctx.isPointInStroke(path,25,10)");
|
|
shouldBeFalse("ctx.isPointInStroke(path,35,10)");</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|