66 lines
1.9 KiB
HTML
66 lines
1.9 KiB
HTML
<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>
|