<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" onload="click()">
  <script type="text/javascript">
  <![CDATA[
    
    if (window.layoutTestController)
        layoutTestController.waitUntilDone();
 
   function changeFill(evt) { 
       var poly = evt.target;
       poly.setAttribute("fill", "green");
   }

   function click() { 
        if (window.eventSender) {
            // Fill click
            eventSender.mouseMoveTo(25, 25);
            eventSender.mouseDown();
            eventSender.mouseUp();
        }
    }
      
    if (window.layoutTestController)
      layoutTestController.notifyDone();
  ]]>
  </script>

  <polyline onclick="changeFill(evt);" points="0 0 100 0 100 100 0 100" fill="red"/>  
</svg>
