<svg xmlns="http://www.w3.org/2000/svg" version="1.1">

  <title>Testcase for dynamic changes of rotate attributes</title>

  <!-- based on http://www.w3.org/TR/SVG/images/text/tspan05.svg -->

  <script type="text/javascript">
    function go() {
      document.getElementById("parent").setAttribute("rotate", "5,15,25,35,45,55");
      document.getElementById("child1").setAttribute("rotate", "-10,-20,-30,-40");
      document.getElementById("child2").setAttribute("rotate", "70,60,50,40,30,20,10");
      document.getElementById("child5").setAttribute("rotate", "-10");
      document.documentElement.removeAttribute("class");
      if (window.testRunner)
        testRunner.notifyDone();
    }

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

    setTimeout(go, 100);
  </script>
  <text id="parent" font-size="32" x="40" y="40">
    Not

    <tspan id="child1">
      all characters

      <tspan id="child2">
        in

        <tspan id="child3">
          the
        </tspan>
      </tspan>

      <tspan x="40" y="90" id="child4">
        text
      </tspan>

      have a
    </tspan>

    <tspan id="child5" rotate="90">
      specified
    </tspan>

    rotation
  </text>
</svg>
