WebCore:
[WebKit-https.git] / LayoutTests / fast / dom / simultaneouslyRegsiteredTimerFireOrder.html
1 <p>
2 This page verifies that timers with equivalent fire times fire in the order they
3 were registered. If the test passes, you'll see a series of PASS messages below.
4 </p>
5
6 <pre id="pre"></pre>
7
8 <script>
9 function log(s)
10 {
11     document.getElementById("pre").appendChild(document.createTextNode(s + "\r\n"));
12 }
13
14 function shouldBe(a, aDescription, b)
15 {
16     if (a === b) {
17         log("PASS: " + aDescription + " should be " + b + " and is.");
18     } else {
19         log("FAIL: " + aDescription + " should be " + b + " but instead is " + a + ".");
20     }
21 }
22
23 var count = 100;
24 var firedTimers = [];
25
26 function fired(id)
27 {
28     firedTimers.push(id);
29     if (id == count - 1)
30         done();
31 }
32
33 function done()
34 {
35     for (var i = 0; i < count; ++i)
36         shouldBe(firedTimers[i], "firedTimers[" + i + "]", i);
37
38     if (window.layoutTestController)
39         layoutTestController.notifyDone();
40 }
41
42 if (window.layoutTestController) {
43     layoutTestController.dumpAsText();
44     layoutTestController.waitUntilDone();
45 }
46
47 for (var i = 0; i < count; ++i)
48     setTimeout((function() { var j = i; return function() { fired(j); }})(), 0);
49 </script>