Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
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 */
7 // Tests that the Console API implements the time() and timeEnd() methods.
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);
17 function* runner() {
18 let hud1 = yield openConsole();
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 });
31 let deferred = promise.defer();
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);
44 let hud2 = yield deferred.promise;
46 testLogEntry(hud2.outputNode, "bTimer: timer started",
47 "bTimer was not started", false, true);
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>";
54 yield waitForMessages({
55 webconsole: hud2,
56 messages: [{
57 name: "bTimer started",
58 consoleTime: "bTimer",
59 }],
60 });
62 hud2.jsterm.clearOutput();
64 deferred = promise.defer();
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);
73 content.location = "data:text/html;charset=utf-8," +
74 "<script>console.timeEnd('bTimer');</script>";
76 yield deferred.promise;
78 testLogEntry(hud2.outputNode, "bTimer: timer started",
79 "bTimer was not started", false, true);
81 yield closeConsole(gBrowser.selectedTab);
83 gBrowser.removeCurrentTab();
85 executeSoon(finishTest);
86 }
87 }