| <html xmlns='http://www.w3.org/1999/xhtml'> |
| <head> |
| <style> |
| #svgRoot { |
| margin: 0px; |
| padding: 0px; |
| position: absolute; |
| top: 0px; |
| left: 0px;" |
| } |
| |
| #rect { |
| fill: green; |
| fill-opacity: 0.1; |
| } |
| </style> |
| </head> |
| <body> |
| <p>Test for bug 34714 - onclick is not reliable for transformed SVG elements. This test checks that elementFromPoint() works correctly with an SVG rect element (green) defined within a 1x1 viewbox.</p> |
| <p>On success, you will see a series of "PASS" messages</p> |
| <pre id="console"></pre> |
| |
| <svg id="svgRoot" width="400px" height="400px" viewBox="0 0 1 1" xmlns="http://www.w3.org/2000/svg"> |
| <g transform="translate(0.5, 0)"> |
| <rect id="rect" width="1" height="1" transform="translate(-0.499, 0)"/> |
| </g> |
| </svg> |
| |
| <script><![CDATA[ |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| } |
| |
| var resultString = ""; |
| var rectElt = document.getElementById("rect"); |
| |
| var pointsInRect = [ |
| {x: 1, y: 1}, // fails without the fix |
| {x: 1, y: 399}, // fails without the fix |
| {x: 399, y: 1}, |
| {x: 399, y: 399}, |
| {x: 200, y: 200} |
| ]; |
| |
| pointsInRect.forEach( function(point) { |
| var pass = (rectElt == document.elementFromPoint(point.x, point.y)); |
| resultString += ((pass) ? "PASS " : "FAIL ") + " rect contains point @ " + point.x + ", " + point.y + "\n"; |
| }); |
| |
| var pointsNotInRect = [ |
| {x: 1, y: 401}, |
| {x: 401, y: 1}, |
| {x: 401, y: 401}, |
| {x: -1, y: -1}, |
| ]; |
| |
| pointsNotInRect.forEach( function(point) { |
| var pass = (rectElt != document.elementFromPoint(point.x, point.y)); |
| resultString += ((pass) ? "PASS " : "FAIL ") + " rect does not contain point @ " + point.x + ", " + point.y + "\n"; |
| }); |
| |
| document.getElementById("console").innerHTML = resultString; |
| ]]></script> |
| </body> |
| </html> |