<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="../../fast/repaint/resources/repaint.js"></script>
</head>
<body style="margin: 0" onload="runRepaintTest()">
  <div id="div" style="width:100px; height:100px; overflow:hidden">
    <svg id="svg" width="200px" height="200px" xmlns="http://www.w3.org/2000/svg">
      <rect fill="orange" width="100px" height="100px" />
      <rect id="rect" onclick="clicked()" fill="green" y="100px" x="100px" width="100px" height="100px" />
    </svg>
  </div>
  <script>
    <![CDATA[
      function clicked() {
        document.getElementById("rect").style.fill = "green";
        if (window.testRunner)
          testRunner.notifyDone();
      }

      function repaintTest() {
        var div = document.getElementById("div");
        div.scrollTop = 100;
        div.scrollLeft = 100;
        if (window.eventSender) {
          testRunner.waitUntilDone();
          eventSender.mouseMoveTo(50, 50);
          eventSender.mouseDown();
          eventSender.mouseUp();
        }
      }
    ]]>
  </script>
</body>
</html>
