<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>2 renderers 1 counter reset failure.</title>
<meta name="assert" content="When a Counter node is destroyed all its display renderers must be reset.">
<style type="text/css">

#testView:before {
  content: "First Counter:" counters(test, ".") " Second Counter:" counters(test, ".");
}
.counter1 {
  counter-reset: test 1;
}
.counter1000 {
  counter-reset: test 1000;
}

</style>
<script src="../../../resources/js-test-pre.js"></script>
<script type="text/javascript">

description("This test passes if both the first and the second counter are 1000.");

if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function run()
{
    document.getElementById("testView").setAttribute("class", "counter1000");
    if (!window.testRunner)
        return;
    shouldBe("window.internals.counterValue(document.getElementById('testView'))", "'1000 1000'");

    if (window.testRunner)
        testRunner.notifyDone();
}

window.onload = run;

</script>
</head>
<body>
<div id="testView" class="counter1"></div>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>
