<!--
    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 for changing stroke-opacity from 0 to non-zero</title>

  <!-- From https://bugzilla.mozilla.org/show_bug.cgi?id=939942 -->

  <rect width="100%" height="100%" fill="red"/>

  <rect id="r" width="100%" height="50%" y="25%" stroke-opacity="0" stroke="lime" stroke-width="75%" fill="lime"/>

  <script>
  
    function doTest() {
      document.getElementById("r").style.strokeOpacity = "1";
      document.documentElement.removeAttribute("class");
      if (window.testRunner)
        testRunner.notifyDone();
    }
    
    if (window.testRunner)
       testRunner.waitUntilDone();

    setTimeout(doTest, 100);

  </script>
</svg>
