<html>
<body id="body">
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">

<symbol id="target">
  <text font-size="172cm">YYYYYYYYY</text>
</symbol>
<use xlink:href="#target"></use> 

<script><![CDATA[
function keyDownMouseClick(x1, y1, x2, y2)
{
    if (!window.eventSender)
        return;
    eventSender.mouseDown();
    eventSender.mouseMoveTo(x2, y2);
    eventSender.mouseUp();
}

if (window.testRunner)
   testRunner.dumpAsText();

var target = document.getElementById("target");
keyDownMouseClick(333, 357, 155, 174);
target.textContent = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
keyDownMouseClick(115, 317, -16, -2);

document.getElementById("body").textContent = "PASS"
]]></script>
</svg>
</body>
</html>
