<!--
     Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/publicdomain/zero/1.0/
-->
<svg xmlns="http://www.w3.org/2000/svg" onload="startTest()">

<script>
<![CDATA[

function startTest() {
  if (window.testRunner)
    testRunner.waitUntilDone();
  setTimeout(boom, 100);
}

function boom() {
  document.getElementById('inner1').setAttribute('x', 20);
  document.getElementById('inner2').setAttribute('width', 100);
  document.documentElement.removeAttribute("class");
  if (window.testRunner)
    testRunner.notifyDone();
}

]]>
</script>

  <rect width="100%" height="100%" fill="lime"/>
	
  <rect x="20" y="20" width="100" height="100" fill="red"/>
	
  <svg id="inner1" x="260" y="20" width="100" height="100">
    <rect x="0" y="0" width="100" height="100" fill="lime"/>
  </svg>

  <rect x="20" y="140" width="100" height="100" fill="red"/>
	
  <svg id="inner2" x="20" y="140" width="1" height="100">
    <rect x="0" y="0" width="100" height="100" fill="lime"/>
  </svg>

</svg>
