browser/devtools/webconsole/test/browser_webconsole_bug_658368_time_methods.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:edc52de888dd
1 /* vim:set ts=2 sw=2 sts=2 et: */
2 /*
3 * Any copyright is dedicated to the Public Domain.
4 * http://creativecommons.org/publicdomain/zero/1.0/
5 */
6
7 // Tests that the Console API implements the time() and timeEnd() methods.
8
9 function test() {
10 addTab("http://example.com/browser/browser/devtools/webconsole/" +
11 "test/test-bug-658368-time-methods.html");
12 browser.addEventListener("load", function onLoad() {
13 browser.removeEventListener("load", onLoad, true);
14 Task.spawn(runner);
15 }, true);
16
17 function* runner() {
18 let hud1 = yield openConsole();
19
20 yield waitForMessages({
21 webconsole: hud1,
22 messages: [{
23 name: "aTimer started",
24 consoleTime: "aTimer",
25 }, {
26 name: "aTimer end",
27 consoleTimeEnd: "aTimer",
28 }],
29 });
30
31 let deferred = promise.defer();
32
33 // The next test makes sure that timers with the same name but in separate
34 // tabs, do not contain the same value.
35 addTab("data:text/html;charset=utf-8,<script>" +
36 "console.timeEnd('bTimer');</script>");
37 browser.addEventListener("load", function onLoad() {
38 browser.removeEventListener("load", onLoad, true);
39 openConsole().then((hud) => {
40 deferred.resolve(hud);
41 });
42 }, true);
43
44 let hud2 = yield deferred.promise;
45
46 testLogEntry(hud2.outputNode, "bTimer: timer started",
47 "bTimer was not started", false, true);
48
49 // The next test makes sure that timers with the same name but in separate
50 // pages, do not contain the same value.
51 content.location = "data:text/html;charset=utf-8,<script>" +
52 "console.time('bTimer');</script>";
53
54 yield waitForMessages({
55 webconsole: hud2,
56 messages: [{
57 name: "bTimer started",
58 consoleTime: "bTimer",
59 }],
60 });
61
62 hud2.jsterm.clearOutput();
63
64 deferred = promise.defer();
65
66 // Now the following console.timeEnd() call shouldn't display anything,
67 // if the timers in different pages are not related.
68 browser.addEventListener("load", function onLoad() {
69 browser.removeEventListener("load", onLoad, true);
70 deferred.resolve(null);
71 }, true);
72
73 content.location = "data:text/html;charset=utf-8," +
74 "<script>console.timeEnd('bTimer');</script>";
75
76 yield deferred.promise;
77
78 testLogEntry(hud2.outputNode, "bTimer: timer started",
79 "bTimer was not started", false, true);
80
81 yield closeConsole(gBrowser.selectedTab);
82
83 gBrowser.removeCurrentTab();
84
85 executeSoon(finishTest);
86 }
87 }

mercurial