<html><head>
    <style>
        .c0:after { counter-increment:section; content: counter(section); }
    </style>
    <script src="../../../resources/js-test-pre.js"></script>
    <script>
        if (window.testRunner) {
            testRunner.dumpAsText();
            testRunner.waitUntilDone();
        }
        function run()
        {
            shouldBe("window.internals.counterValue(document.getElementById('c2'))", "'2'");

            debug('');
            debug('TEST COMPLETE');
            if (window.testRunner)
                testRunner.notifyDone();
        }
    </script>
</head><body onload="setTimeout('run()', 0);">
    <p>This test passes if the numbers displayed below are 1 and 2 in this order.</p>
    <div>
        <div style="counter-reset: section;"></div>
        <div><span id="c1" class=c0><div></div></span></div>
        <div id="c2" class=c0></div>
    </div>
    <div id="console"></div>
</body></html>

