<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <script src="../../fast/repaint/resources/repaint.js"></script>
<title>&lt;br&gt; prevents click handler from firing</title>
<script>
function clickHandler(evt) {
    evt.target.style.fill = "green";
    if (window.testRunner)
        testRunner.notifyDone();
}

function repaintTest() {
    if (window.eventSender) {
        testRunner.waitUntilDone();
        eventSender.mouseMoveTo(50, 80);
        eventSender.mouseDown();
        eventSender.mouseUp();
    }
}
</script>
  </head>
  <body onload="runRepaintTest()">
    <p>
    A test for hit testing when an svg container is relatively positioned in
    a containing block. See bug 13981.
    </p>
    <br />
    <svg xmlns="http://www.w3.org/2000/svg" width="720" height="15">
      <rect width="720" height="15" onclick="clickHandler(evt)" />
    </svg>
  </body>
</html>
