1 <html xmlns='http://www.w3.org/1999/xhtml'>
21 <p>Tests for WK84117 - Make sure hit testing works properly on small paths.</p>
22 <p>On success, you will see a series of "PASS" messages and no "FAIL" messages.</p>
23 <pre id="console"></pre>
25 <svg id="svgRoot" width="400px" height="400px" viewBox="0 0 400 400" xmlns="http://www.w3.org/2000/svg">
26 <g transform="translate(100, 100) scale(100, 100)">
27 <path id="path" d="M 0 0 L 0.4 0 L 0.4 0.4 L 0 0.4 z" stroke-width="0.2" />
32 if (window.layoutTestController)
33 layoutTestController.dumpAsText();
35 var resultString = "";
36 var pathElement = document.getElementById("path");
44 var pointsNotInPath = [
49 var pointsOnPathStroke = [
50 {x: 122, y: 146}, // outer stroke
51 {x: 124, y: 136} // inner stroke
54 var pointsNotOnPathStroke = [
55 {x: 160, y: 160}, // outside path
56 {x: 0, y: 0}, // outside path
57 {x: 120, y: 120} // inside path
60 pathElement.style.setProperty("pointer-events", "visibleFill"); // only capture events on the fill
61 pointsInPath.forEach( function(point) {
62 var pass = (pathElement == document.elementFromPoint(point.x, point.y));
63 resultString += ((pass) ? "PASS" : "FAIL") + " path contains point at (" + point.x + ", " + point.y + ")\n";
65 pointsNotInPath.forEach( function(point) {
66 var pass = (pathElement != document.elementFromPoint(point.x, point.y));
67 resultString += ((pass) ? "PASS" : "FAIL") + " path does not contain point at (" + point.x + ", " + point.y + ")\n";
70 pathElement.style.setProperty("pointer-events", "visibleStroke"); // only capture events on the stroke
71 pointsOnPathStroke.forEach( function(point) {
72 var pass = (pathElement == document.elementFromPoint(point.x, point.y));
73 resultString += ((pass) ? "PASS" : "FAIL") + " path stroke contains point at (" + point.x + ", " + point.y + ")\n";
75 pointsNotOnPathStroke.forEach( function(point) {
76 var pass = (pathElement != document.elementFromPoint(point.x, point.y));
77 resultString += ((pass) ? "PASS" : "FAIL") + " path stroke does not contain point at (" + point.x + ", " + point.y + ")\n";
79 document.getElementById("console").innerHTML = resultString;