chromium/third_party/blink/web_tests/fast/css/counters/adding-nodes.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Adding nodes that affect the CSS counter tree</title>
    <link rel="author" href="mailto:[email protected]" title="Carol Szabo">
    <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counters">
    <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
    <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#counter">
    <meta content="dom" name="flags">
    <meta http-equiv="Content-Style-Type" content="text/css">
    <meta http-equiv="Content-Script-Type" content="text/javascript">
    <style type="text/css">
      body { white-space: nowrap; }
      .reset { counter-reset: c; }
      .increment::before, .use::before { content: counters(c, ".") "-"; }
      .increment { counter-increment: c; }
    </style>
    <script type="text/javascript">
      if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
      }

      function run() {
        testElement = document.getElementById("test");
        newSpanElement = document.createElement("span");
        newSpanElement.setAttribute("class","increment");
        newSpanElement.setAttribute("id","newNode");
        testElement.insertBefore(newSpanElement, testElement.firstChild);
        if (window.testRunner) {
          console = document.getElementById("console");
          spanList = testElement.getElementsByTagName("span")
          for (i = 0; i < spanList.length; ++i ) {
            newSpanElement = document.createElement("span");
            id = spanList.item(i).getAttribute("id");
            if (id != null)
              newSpanElement.innerText = internals.counterValue(document.getElementById(id));
            if (newSpanElement.innerText.length)
              newSpanElement.innerText = newSpanElement.innerText + "-";
            console.appendChild(newSpanElement);
          }
          testElement.parentNode.removeChild(testElement);
          testElement = document.getElementById("reference");
          testElement.innerHTML = testElement.innerHTML.replace(/<b>a<u>b<\/u><\/b>/g,"");
          testRunner.notifyDone();
        }
      }
    </script>
  </head>
  <body onload="setTimeout('run()', 0)">
    <p>The following two lines should have the same content:</p>
    <div id="test">
      <!-- Here <span class="increment" id="newNode"></span> will be inserted -->
      <span id="parent">
        <span id="rootOne" class="increment"/></span>
        <span id="rootTwo" class="reset"></span>
        <span id="r2c1" class="use">
          <span id="nrreset" class="reset">
            <span id="r3c1" class="increment"></span>
          </span>
        </span>
    </div>
    <div id="reference">1- 2- 2- 2.1-</div>
    <hr>
    <div id="console"></div>
  </body></html>