browser/devtools/webconsole/test/browser_webconsole_bug_658368_time_methods.js

changeset 0
6474c204b198
     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 +}

mercurial