<!--
     Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/publicdomain/zero/1.0/
-->
<svg xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink">
  <defs>
    <symbol id="sym1">
      <rect width="100" height="100" fill="lime" />
    </symbol>
  </defs>
  <rect width="100%" height="100%" fill="lime"/>
  <rect x="50%" width="100" height="100" fill="red" />
  <svg id="svg" width="50%">
    <use x="50%" xlink:href="#sym1"/>
  </svg>
  <script type="text/javascript">

    function doTest() {
      var svg = document.getElementById("svg");
      svg.setAttribute("width", "100%");
      document.documentElement.removeAttribute('class');
      if (window.testRunner)
        testRunner.notifyDone();
    }

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

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