<svg xmlns="http://www.w3.org/2000/svg" onload="runTest()">
  <script type="text/javascript">
  <![CDATA[
    if (window.testRunner)
      testRunner.dumpAsText();

    function log(string) {
      var newDiv = document.createElementNS("http://www.w3.org/1999/xhtml", "div");
      newDiv.textContent = string;
      document.getElementById('log').appendChild(newDiv);
    }

    function runTest()
    {
      var polyline = document.getElementById("poly");
      var attr = polyline.getAttributeNode("points");
      if (attr.value != "0 0 10 10") {
        log("FAIL: Initial 'points' value differs");
        return;
      }
      polyline.setAttribute("points", "10 0 10 10");
      if (attr.value != "10 0 10 10") {
        log("FAIL: Updating points attribute failed, changes not reflected in existing 'Attr' object");
        return;
      }
      var points = polyline.points;
      var point = document.rootElement.createSVGPoint();
      point.x = 20;
      point.y = 20;
      points.appendItem(point);
      // The attribute node is not in sync, should this be fixed? Opera handles it like us.
      if (polyline.getAttribute("points") != "10 0 10 10 20 20") {
        log("FAIL: Modification via SVG DOM not reflected in XML DOM");
        return;
      }
      log("SUCCESS");
    }
  ]]>
  </script>
  <foreignObject y="200" width="600" height="400">
  <html xmlns="http://www.w3.org/1999/xhtml">
    <body>
      <div id="log">
      </div>
    </body>
  </html>
  </foreignObject>
  <polyline id="poly" points="0 0 10 10"/>
</svg>
