1 <html xmlns='http://www.w3.org/1999/xhtml'>
22 <p>Tests for WK80423 - Make sure hit testing works properly on stroked ellipses.</p>
23 <p>On success, you will see a series of "PASS" messages and no "FAIL" messages.</p>
24 <pre id="console"></pre>
26 <svg id="svgRoot" width="400px" height="400px" viewBox="0 0 400 400" xmlns="http://www.w3.org/2000/svg">
27 <ellipse id="ellipse" cx="150" cy="150" rx="200" ry="100"/>
31 if (window.layoutTestController)
32 layoutTestController.dumpAsText();
34 var resultString = "";
35 var ellipseElement = document.getElementById("ellipse");
37 var pointsInEllipse = [
43 var pointsNotInEllipse = [
48 var pointsOnEllipseStroke = [
49 {x: 275, y: 250}, // outer stroke
50 {x: 300, y: 200} // inner stroke
53 var pointsNotOnEllipseStroke = [
54 {x: 375, y: 375}, // outside ellipse
55 {x: 0, y: 0}, // outside ellipse
56 {x: 150, y: 150} // inside ellipse
59 ellipseElement.style.setProperty("pointer-events", "visibleFill"); // only capture events on the fill
60 pointsInEllipse.forEach( function(point) {
61 var pass = (ellipseElement == document.elementFromPoint(point.x, point.y));
62 resultString += ((pass) ? "PASS" : "FAIL") + " ellipse contains point at (" + point.x + ", " + point.y + ")\n";
64 pointsNotInEllipse.forEach( function(point) {
65 var pass = (ellipseElement != document.elementFromPoint(point.x, point.y));
66 resultString += ((pass) ? "PASS" : "FAIL") + " ellipse does not contain point at (" + point.x + ", " + point.y + ")\n";
69 ellipseElement.style.setProperty("pointer-events", "visibleStroke"); // only capture events on the stroke
70 pointsOnEllipseStroke.forEach( function(point) {
71 var pass = (ellipseElement == document.elementFromPoint(point.x, point.y));
72 resultString += ((pass) ? "PASS" : "FAIL") + " ellipse stroke contains point at (" + point.x + ", " + point.y + ")\n";
74 pointsNotOnEllipseStroke.forEach( function(point) {
75 var pass = (ellipseElement != document.elementFromPoint(point.x, point.y));
76 resultString += ((pass) ? "PASS" : "FAIL") + " ellipse stroke does not contain point at (" + point.x + ", " + point.y + ")\n";
78 document.getElementById("console").innerHTML = resultString;