<svg version="1.1" baseProfile="basic" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <defs>
   <rect onclick="test(evt)" id="reference" x="240" y="1" width="239" height="358"/>

   <script type="text/ecmascript">
    <![CDATA[
    if (window.layoutTestController)
        layoutTestController.waitUntilDone();

    window.setTimeout("clickNow()", 0);

    function clickNow() {
        if (window.eventSender) {
            eventSender.mouseMoveTo(250, 50);
            eventSender.mouseDown();
            eventSender.mouseUp();
        }

        if (window.layoutTestController) {
            layoutTestController.notifyDone();
        }
    }

    function test (event) {
        document.getElementById("text").firstChild.nodeValue = "Test passed.";
      }
    ]]>
    </script>
  </defs>

  <use id="use" xlink:href="#reference" fill="grey"/>

  <text id="text" transform="translate(5,20)">Test failed.</text>
  <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
</svg>
