diff -r 000000000000 -r 6474c204b198 browser/devtools/webconsole/test/browser_webconsole_bug_658368_time_methods.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/browser/devtools/webconsole/test/browser_webconsole_bug_658368_time_methods.js Wed Dec 31 06:09:35 2014 +0100
@@ -0,0 +1,87 @@
+/* vim:set ts=2 sw=2 sts=2 et: */
+/*
+ * Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+// Tests that the Console API implements the time() and timeEnd() methods.
+
+function test() {
+ addTab("http://example.com/browser/browser/devtools/webconsole/" +
+ "test/test-bug-658368-time-methods.html");
+ browser.addEventListener("load", function onLoad() {
+ browser.removeEventListener("load", onLoad, true);
+ Task.spawn(runner);
+ }, true);
+
+ function* runner() {
+ let hud1 = yield openConsole();
+
+ yield waitForMessages({
+ webconsole: hud1,
+ messages: [{
+ name: "aTimer started",
+ consoleTime: "aTimer",
+ }, {
+ name: "aTimer end",
+ consoleTimeEnd: "aTimer",
+ }],
+ });
+
+ let deferred = promise.defer();
+
+ // The next test makes sure that timers with the same name but in separate
+ // tabs, do not contain the same value.
+ addTab("data:text/html;charset=utf-8,");
+ browser.addEventListener("load", function onLoad() {
+ browser.removeEventListener("load", onLoad, true);
+ openConsole().then((hud) => {
+ deferred.resolve(hud);
+ });
+ }, true);
+
+ let hud2 = yield deferred.promise;
+
+ testLogEntry(hud2.outputNode, "bTimer: timer started",
+ "bTimer was not started", false, true);
+
+ // The next test makes sure that timers with the same name but in separate
+ // pages, do not contain the same value.
+ content.location = "data:text/html;charset=utf-8,";
+
+ yield waitForMessages({
+ webconsole: hud2,
+ messages: [{
+ name: "bTimer started",
+ consoleTime: "bTimer",
+ }],
+ });
+
+ hud2.jsterm.clearOutput();
+
+ deferred = promise.defer();
+
+ // Now the following console.timeEnd() call shouldn't display anything,
+ // if the timers in different pages are not related.
+ browser.addEventListener("load", function onLoad() {
+ browser.removeEventListener("load", onLoad, true);
+ deferred.resolve(null);
+ }, true);
+
+ content.location = "data:text/html;charset=utf-8," +
+ "";
+
+ yield deferred.promise;
+
+ testLogEntry(hud2.outputNode, "bTimer: timer started",
+ "bTimer was not started", false, true);
+
+ yield closeConsole(gBrowser.selectedTab);
+
+ gBrowser.removeCurrentTab();
+
+ executeSoon(finishTest);
+ }
+}