Bug 1874684 - Part 6: Limit day length calculations to safe integers. r=mgaudet
[gecko.git] / dom / console / tests / test_count.html
blob55917681507fafb77c79ebaf23855c39fe8d594d
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <title>Test for count/countReset in console</title>
6 <script src="/tests/SimpleTest/SimpleTest.js"></script>
7 <script src="head.js"></script>
8 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
9 </head>
10 <body>
11 <script type="application/javascript">
13 SimpleTest.waitForExplicitFinish();
15 function ConsoleListener() {
16 addConsoleStorageListener(this);
19 ConsoleListener.prototype = {
20 observe(aSubject) {
21 let obj = aSubject.wrappedJSObject;
22 if (obj.arguments[0] != "test") {
23 return;
26 if (!this._cb) {
27 ok(false, "Callback not set!");
28 return;
31 if (!this._cb(obj)) {
32 return;
35 this._cb = null;
36 this._resolve();
39 shutdown() {
40 removeConsoleStorageListener(this);
43 waitFor(cb) {
44 return new Promise(resolve => {
45 this._cb = SpecialPowers.wrapCallback(cb);
46 this._resolve = resolve;
47 });
51 let listener = new ConsoleListener();
53 async function runTest() {
54 // First count.
55 let cl = listener.waitFor(obj => {
56 return ("counter" in obj) &&
57 ("label" in obj.counter) &&
58 obj.counter.label == "test" &&
59 obj.counter.count == 1;
60 });
61 console.count("test");
62 await cl;
63 ok(true, "Console.count == 1 received!");
65 // Second count.
66 cl = listener.waitFor(obj => {
67 return ("counter" in obj) &&
68 ("label" in obj.counter) &&
69 obj.counter.label == "test" &&
70 obj.counter.count == 2;
71 });
72 console.count("test");
73 await cl;
74 ok(true, "Console.count == 2 received!");
76 // Counter reset.
77 cl = listener.waitFor(obj => {
78 return ("counter" in obj) &&
79 ("label" in obj.counter) &&
80 obj.counter.label == "test" &&
81 obj.counter.count == 0;
82 });
83 console.countReset("test");
84 await cl;
85 ok(true, "Console.countReset == 0 received!");
87 // Counter reset with error.
88 cl = listener.waitFor(obj => {
89 return ("counter" in obj) &&
90 ("label" in obj.counter) &&
91 obj.counter.label == "test" &&
92 obj.counter.error == "counterDoesntExist";
93 });
94 console.countReset("test");
95 await cl;
96 ok(true, "Console.countReset with error received!");
98 // First again!
99 cl = listener.waitFor(obj => {
100 return ("counter" in obj) &&
101 ("label" in obj.counter) &&
102 obj.counter.label == "test" &&
103 obj.counter.count == 1;
105 console.count("test");
106 await cl;
107 ok(true, "Console.count == 1 received!");
110 runTest().then(() => {
111 listener.shutdown();
112 SimpleTest.finish();
115 </script>
116 </body>
117 </html>