browser/devtools/commandline/test/browser_cmd_jsb.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:83c33bdc9fc2
1 /* Any copyright is dedicated to the Public Domain.
2 * http://creativecommons.org/publicdomain/zero/1.0/ */
3
4 // Tests that the jsb command works as it should
5
6 const TEST_URI = "http://example.com/browser/browser/devtools/commandline/" +
7 "test/browser_cmd_jsb_script.jsi";
8
9 function test() {
10 return Task.spawn(testTask).then(finish, helpers.handleError);
11 }
12
13 function testTask() {
14 let options = yield helpers.openTab("about:blank");
15 yield helpers.openToolbar(options);
16
17 let deferred = promise.defer();
18 let scratchpadWin = null;
19 let scratchpad = null;
20
21 let observer = {
22 onReady: function() {
23 scratchpad.removeObserver(observer);
24
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");
38
39 if (scratchpadWin) {
40 scratchpadWin.close();
41 scratchpadWin = null;
42 }
43 deferred.resolve();
44 },
45 };
46
47 let onLoad = function GDT_onLoad() {
48 scratchpadWin.removeEventListener("load", onLoad, false);
49 scratchpad = scratchpadWin.Scratchpad;
50
51 scratchpad.addObserver(observer);
52 };
53
54 let onNotify = function(subject, topic, data) {
55 if (topic == "domwindowopened") {
56 Services.ww.unregisterNotification(onNotify);
57
58 scratchpadWin = subject.QueryInterface(Ci.nsIDOMWindow);
59 scratchpadWin.addEventListener("load", onLoad, false);
60 }
61 };
62
63 Services.ww.registerNotification(onNotify);
64
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 ]);
82
83 yield deferred.promise;
84
85 yield helpers.closeToolbar(options);
86 yield helpers.closeTab(options);
87 }

mercurial