118 lines
4.6 KiB
HTML
118 lines
4.6 KiB
HTML
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body onload="run()">
|
|
<svg id="svg" xmlns="http://www.w3.org/2000/svg" width="200" height="200">
|
|
<path id="p1" d="M-100 -100L100 -100 L100 100 L-100 100 z"/>
|
|
<path id="p2" d="M-100 -100L100 -100 L100 100 L-100 100 z" transform="translate(-1000, -1000)"/>
|
|
<path id="p3" d="M100 100L300 100 L300 300 L100 300 z"/>
|
|
<path id="p4" d="M-100 -100L100 -100 L100 100 L-100 100 z" style="display: none"/>
|
|
<path id="p5" d="M-100 -100L100 -100 L100 100 L-100 100 z" style="visibility: hidden"/>
|
|
<path id="p6" d="M-100 -100L100 -100 L100 100 L-100 100 z" style="opacity: 0"/>
|
|
<g style="opacity: 0">
|
|
<path id="p7" d="M-100 -100L100 -100 L100 100 L-100 100 z"/>
|
|
</g>
|
|
<path id="p8" d="M-100 -100L100 -100 L100 100 L-100 100 z M-50 -50L50 -50 L50 50 L-50 50 z" fill-rule="nonzero"/>
|
|
<path id="p9" d="M-100 -100L100 -100 L100 100 L-100 100 z M-50 -50L50 -50 L50 50 L-50 50 z" fill-rule="evenodd"/>
|
|
<clipPath>
|
|
<path id="p10" d="M-100 -100L100 -100 L100 100 L-100 100 z M-50 -50L50 -50 L50 50 L-50 50 z" fill-rule="nonzero" clip-rule="evenodd"/>
|
|
<path id="p11" d="M-100 -100L100 -100 L100 100 L-100 100 z M-50 -50L50 -50 L50 50 L-50 50 z" fill-rule="evenodd" clip-rule="nonzero"/>
|
|
</clipPath>
|
|
</svg>
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
<script type="text/javascript">
|
|
<![CDATA[
|
|
window.enablePixelTesting = false;
|
|
window.jsTestIsAsync = true;
|
|
var svg = document.getElementById("svg");
|
|
var p1 = document.getElementById("p1"),
|
|
p2 = document.getElementById("p2"),
|
|
p3 = document.getElementById("p3"),
|
|
p4 = document.getElementById("p4"),
|
|
p5 = document.getElementById("p5"),
|
|
p6 = document.getElementById("p6"),
|
|
p7 = document.getElementById("p7"),
|
|
p8 = document.getElementById("p8"),
|
|
p9 = document.getElementById("p9"),
|
|
p10 = document.getElementById("p10"),
|
|
p11 = document.getElementById("p11");
|
|
var svgPoint = svg.createSVGPoint();
|
|
|
|
function run() {
|
|
description("Test isPointInFill() on path.");
|
|
|
|
debug("");
|
|
debug("Test simple different coordinates");
|
|
|
|
shouldBe("p1.isPointInFill()", "true");
|
|
var point = {};
|
|
shouldBe("p1.isPointInFill({})", "true");
|
|
shouldBe("p1.isPointInFill({x: 0, y: 0})", "true");
|
|
shouldBe("p1.isPointInFill({x: 200, y: 200})", "false");
|
|
shouldBe("p1.isPointInFill({x: -200, y: -200})", "false");
|
|
shouldBe("p1.isPointInFill({x: -100, y: -100})", "true");
|
|
shouldBe("p1.isPointInFill(new DOMPoint())", "true");
|
|
shouldBe("p1.isPointInFill(new DOMPoint(100, 100))", "true");
|
|
shouldBe("p1.isPointInFill(new DOMPoint(-200, -200))", "false");
|
|
shouldBe("p1.isPointInFill(new DOMPointReadOnly())", "true");
|
|
shouldBe("p1.isPointInFill(new DOMPointReadOnly(-200, -200))", "false");
|
|
shouldBe("p1.isPointInFill(svgPoint)", "true");
|
|
svgPoint.x = -200;
|
|
svgPoint.y = -200;
|
|
shouldBe("p1.isPointInFill(svgPoint)", "false");
|
|
shouldBe("p1.isPointInFill(new DOMPoint(NaN))", "false");
|
|
shouldBe("p1.isPointInFill(new DOMPoint(Infinity))", "false");
|
|
shouldBe("p1.isPointInFill({x: 'string', y: 'string'})", "false");
|
|
shouldThrow("p1.isPointInFill('string')");
|
|
|
|
debug("");
|
|
debug("Test that transform doesn't affect result");
|
|
shouldBe("p2.isPointInFill()", "true");
|
|
|
|
debug("");
|
|
debug("Verify that no argument or empty dictionary is the same as 0,0 and may return false");
|
|
shouldBe("p3.isPointInFill()", "false");
|
|
shouldBe("p3.isPointInFill({})", "false");
|
|
|
|
debug("");
|
|
debug("display: none; should not affect isPointInFill");
|
|
shouldBe("p4.isPointInFill()", "true");
|
|
|
|
debug("");
|
|
debug("visibility: hidden; should not affect isPointInFill");
|
|
shouldBe("p5.isPointInFill()", "true");
|
|
|
|
debug("");
|
|
debug("opacity: 0; should not affect isPointInFill");
|
|
shouldBe("p6.isPointInFill()", "true");
|
|
|
|
debug("");
|
|
debug("opacity: 0; on group should not affect isPointInFill");
|
|
shouldBe("p7.isPointInFill()", "true");
|
|
|
|
debug("");
|
|
debug("isPointInFill should respect fill-rule: nonzero");
|
|
shouldBe("p8.isPointInFill()", "true");
|
|
|
|
debug("");
|
|
debug("isPointInFill should respect fill-rule: evenodd");
|
|
shouldBe("p9.isPointInFill()", "false");
|
|
|
|
debug("");
|
|
debug("isPointInFill should not respect clip-rule 1");
|
|
shouldBe("p10.isPointInFill()", "true");
|
|
|
|
debug("");
|
|
debug("isPointInFill should not respect clip-rule 2");
|
|
shouldBe("p11.isPointInFill()", "false");
|
|
|
|
finishJSTest();
|
|
}
|
|
]]>
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|