1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/browser/devtools/webconsole/test/browser_webconsole_bug_658368_time_methods.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,87 @@ 1.4 +/* vim:set ts=2 sw=2 sts=2 et: */ 1.5 +/* 1.6 + * Any copyright is dedicated to the Public Domain. 1.7 + * http://creativecommons.org/publicdomain/zero/1.0/ 1.8 + */ 1.9 + 1.10 +// Tests that the Console API implements the time() and timeEnd() methods. 1.11 + 1.12 +function test() { 1.13 + addTab("http://example.com/browser/browser/devtools/webconsole/" + 1.14 + "test/test-bug-658368-time-methods.html"); 1.15 + browser.addEventListener("load", function onLoad() { 1.16 + browser.removeEventListener("load", onLoad, true); 1.17 + Task.spawn(runner); 1.18 + }, true); 1.19 + 1.20 + function* runner() { 1.21 + let hud1 = yield openConsole(); 1.22 + 1.23 + yield waitForMessages({ 1.24 + webconsole: hud1, 1.25 + messages: [{ 1.26 + name: "aTimer started", 1.27 + consoleTime: "aTimer", 1.28 + }, { 1.29 + name: "aTimer end", 1.30 + consoleTimeEnd: "aTimer", 1.31 + }], 1.32 + }); 1.33 + 1.34 + let deferred = promise.defer(); 1.35 + 1.36 + // The next test makes sure that timers with the same name but in separate 1.37 + // tabs, do not contain the same value. 1.38 + addTab("data:text/html;charset=utf-8,<script>" + 1.39 + "console.timeEnd('bTimer');</script>"); 1.40 + browser.addEventListener("load", function onLoad() { 1.41 + browser.removeEventListener("load", onLoad, true); 1.42 + openConsole().then((hud) => { 1.43 + deferred.resolve(hud); 1.44 + }); 1.45 + }, true); 1.46 + 1.47 + let hud2 = yield deferred.promise; 1.48 + 1.49 + testLogEntry(hud2.outputNode, "bTimer: timer started", 1.50 + "bTimer was not started", false, true); 1.51 + 1.52 + // The next test makes sure that timers with the same name but in separate 1.53 + // pages, do not contain the same value. 1.54 + content.location = "data:text/html;charset=utf-8,<script>" + 1.55 + "console.time('bTimer');</script>"; 1.56 + 1.57 + yield waitForMessages({ 1.58 + webconsole: hud2, 1.59 + messages: [{ 1.60 + name: "bTimer started", 1.61 + consoleTime: "bTimer", 1.62 + }], 1.63 + }); 1.64 + 1.65 + hud2.jsterm.clearOutput(); 1.66 + 1.67 + deferred = promise.defer(); 1.68 + 1.69 + // Now the following console.timeEnd() call shouldn't display anything, 1.70 + // if the timers in different pages are not related. 1.71 + browser.addEventListener("load", function onLoad() { 1.72 + browser.removeEventListener("load", onLoad, true); 1.73 + deferred.resolve(null); 1.74 + }, true); 1.75 + 1.76 + content.location = "data:text/html;charset=utf-8," + 1.77 + "<script>console.timeEnd('bTimer');</script>"; 1.78 + 1.79 + yield deferred.promise; 1.80 + 1.81 + testLogEntry(hud2.outputNode, "bTimer: timer started", 1.82 + "bTimer was not started", false, true); 1.83 + 1.84 + yield closeConsole(gBrowser.selectedTab); 1.85 + 1.86 + gBrowser.removeCurrentTab(); 1.87 + 1.88 + executeSoon(finishTest); 1.89 + } 1.90 +}