browser/devtools/commandline/test/browser_cmd_jsb.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     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