<!--
     Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/publicdomain/zero/1.0/
-->
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
     xmlns:xlink="http://www.w3.org/1999/xlink">
  <title>Testing that href changes are live</title>
  <defs>
    <pattern id="r1" width="100%" height="100%" patternUnits="userSpaceOnUse">
    </pattern>
  </defs>
  <defs>
    <pattern id="r2">
      <rect width="100%" height="100%" fill="lime"/>
    </pattern>
  </defs>
 
  <rect id="u1" width="100%" height="100%" fill="url(#r1)"/>

  <script>
  function doTest() {
    document.getElementById("r1").setAttributeNS("http://www.w3.org/1999/xlink", "href", "#r2");
    document.documentElement.removeAttribute("class");
    if (window.testRunner)
      testRunner.notifyDone();
  }

  if (window.testRunner)
    testRunner.waitUntilDone();

  setTimeout(doTest, 100);
  </script>
</svg>
