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

  <title>Test repainting for opacity property changes</title>

  <rect width="100%" height="100%" fill="lime"/>
  <rect width="100" height="100" fill="red"/>
  <rect id="r" width="100" height="100" fill="lime" style="opacity:0.5"/>

  <script>

    function doTest() {
      document.getElementById("r").style.opacity = 1;
      document.documentElement.removeAttribute("class");
      if (window.testRunner)
        testRunner.notifyDone();
      }

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

    setTimeout(doTest, 100);
    
  </script>

</svg>
