<svg version="1.1" baseProfile="basic" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="runRepaintAndPixelTest()">
  <script xlink:href="../../fast/repaint/resources/text-based-repaint.js"/>
  <defs>
   <rect onclick="test()" id="reference" x="240" y="1" width="239" height="358"/>

   <script type="text/ecmascript">
    <![CDATA[
    window.outputRepaintRects = false;
    function repaintTest() {
        if (window.eventSender) {
            testRunner.waitUntilDone();
            eventSender.mouseMoveTo(250, 50);
            eventSender.mouseDown();
            eventSender.mouseUp();
        }
    }

    function test() {
        document.getElementById("text").firstChild.nodeValue = "Test passed.";
        if (window.testRunner)
            testRunner.notifyDone();
    }
    ]]>
    </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>
