browser/devtools/commandline/test/browser_cmd_jsb.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* Any copyright is dedicated to the Public Domain.
     2  * http://creativecommons.org/publicdomain/zero/1.0/ */
     4 // Tests that the jsb command works as it should
     6 const TEST_URI = "http://example.com/browser/browser/devtools/commandline/" +
     7                  "test/browser_cmd_jsb_script.jsi";
     9 function test() {
    10   return Task.spawn(testTask).then(finish, helpers.handleError);
    11 }
    13 function testTask() {
    14   let options = yield helpers.openTab("about:blank");
    15   yield helpers.openToolbar(options);
    17   let deferred = promise.defer();
    18   let scratchpadWin = null;
    19   let scratchpad = null;
    21   let observer = {
    22     onReady: function() {
    23       scratchpad.removeObserver(observer);
    25       let result = scratchpad.getText();
    26       result = result.replace(/[\r\n]]*/g, "\n");
    27       let correct = "function somefunc() {\n" +
    28                 "  if (true) // Some comment\n" +
    29                 "  doSomething();\n" +
    30                 "  for (let n = 0; n < 500; n++) {\n" +
    31                 "    if (n % 2 == 1) {\n" +
    32                 "      console.log(n);\n" +
    33                 "      console.log(n + 1);\n" +
    34                 "    }\n" +
    35                 "  }\n" +
    36                 "}";
    37       is(result, correct, "JS has been correctly prettified");
    39       if (scratchpadWin) {
    40         scratchpadWin.close();
    41         scratchpadWin = null;
    42       }
    43       deferred.resolve();
    44     },
    45   };
    47   let onLoad = function GDT_onLoad() {
    48     scratchpadWin.removeEventListener("load", onLoad, false);
    49     scratchpad = scratchpadWin.Scratchpad;
    51     scratchpad.addObserver(observer);
    52   };
    54   let onNotify = function(subject, topic, data) {
    55     if (topic == "domwindowopened") {
    56       Services.ww.unregisterNotification(onNotify);
    58       scratchpadWin = subject.QueryInterface(Ci.nsIDOMWindow);
    59       scratchpadWin.addEventListener("load", onLoad, false);
    60     }
    61   };
    63   Services.ww.registerNotification(onNotify);
    65   helpers.audit(options, [
    66     {
    67       setup: 'jsb',
    68       check: {
    69         input:  'jsb',
    70         hints:     ' <url> [options]',
    71         markup: 'VVV',
    72         status: 'ERROR'
    73       }
    74     },
    75     {
    76       setup: 'jsb ' + TEST_URI,
    77       // Should result in a new window, which should fire onReady (eventually)
    78       exec: {
    79       }
    80     }
    81   ]);
    83   yield deferred.promise;
    85   yield helpers.closeToolbar(options);
    86   yield helpers.closeTab(options);
    87 }

mercurial