<!--
     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 ID-map changes are tracked by pattern inheritance</title>
  <defs>
    <pattern id="r1" width="100%" height="100%" patternUnits="userSpaceOnUse" xlink:href="#r2">
    </pattern>
  </defs>
  <defs>
    <pattern id="r0">
      <rect width="100%" height="100%" fill="lime"/>
    </pattern>
  </defs>
 
  <rect id="u1" width="100%" height="100%" fill="url(#r1)"/>

  <script>
  function doTest() {
    document.getElementById("r0").setAttribute("id", "r2");
    document.documentElement.removeAttribute("class");
    if (window.testRunner)
      testRunner.notifyDone();
  }

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

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