<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body style="margin: 0px; padding: 0px">

<div style="overflow: scroll; width: 750px; height: 550px">
<div style="overflow: scroll; width: 725px; height: 1000px">
    <svg xmlns="http://www.w3.org/2000/svg" style="overflow: hidden;" width="100%" height="4096">
        <rect x="350" y="1950" width="100" height="100" fill="navy" fill-opacity="0.5"/>
        <circle r="50" fill="lightcoral"/>
        <text text-anchor="middle" x="400" y="2100">The test passes if the circle sits in the rect</text>
    </svg>
</div>
</div>

<script type="text/javascript">
var svg = document.getElementsByTagName("svg")[0];
var dot = document.getElementsByTagName("circle")[0];
var div1 = document.getElementsByTagName("div")[0];
var div2 = document.getElementsByTagName("div")[1];

window.addEventListener("mousemove", mousemove, false);
div1.scrollTop = 300;
div2.scrollTop = 1400;

if (window.eventSender)
    eventSender.mouseMoveTo(400, 300);

function mousemove(evt) {
    var point = svg.createSVGPoint();
    point.x = evt.clientX;
    point.y = evt.clientY;
    point = point.matrixTransform(svg.getScreenCTM().inverse());
    dot.setAttribute("cx", point.x);
    dot.setAttribute("cy", point.y);
}
</script>
</body>
</html>
