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

  <title>Testcase for text removal</title>

  <rect width="100%" height="100%" fill="lime"/>
  <text id="text" font-size="32" x="40" y="40">SHOULD NOT SEE ME</text>
  
  <script>
  
    function doTest() {
      document.getElementById("text").firstChild.nodeValue='';
      document.documentElement.removeAttribute("class");
      if (window.testRunner)
        testRunner.notifyDone();
    }
    
    if (window.testRunner)
       testRunner.waitUntilDone();

    setTimeout(doTest, 100);

  </script>

</svg>
