<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
         "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     xmlns:html="http://www.w3.org/1999/xhtml"
     height="600" width="800" onload="runRepaintAndPixelTest()">
  <script xlink:href="../resources/text-based-repaint.js"/>
  <g transform="translate(50,50)">
    <polygon points="0,0 300,0 300,300 0,300" style="fill:lightblue; stroke:red;"/>
    <!-- switch -->
    <foreignObject x="10" y="10" width="280" height="280">
      <html:b>Absolute Lineto</html:b><html:br/>
       &lt;path d="M50,80 L250,80 150,280 z" 
                style="fill:red; stroke:blue;"/&gt;
    </foreignObject>
    <!-- /switch -->
    <path d="M50,80 L250,80 150,280 z" 
          style="fill:red; stroke:blue;"/>
  </g>
  <script>
  window.testIsAsync = true;
  function repaintTest() {
    if (window.eventSender) {
        eventSender.mouseMoveTo(100, 100);
        eventSender.mouseUp();
        eventSender.mouseDown();
        setTimeout(finishRepaintTest, 0);
    }
  }
  </script>
</svg> 
