browser/devtools/scratchpad/test/browser_scratchpad_execute_print.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 /* vim: set ts=2 et sw=2 tw=80: */
     2 /* Any copyright is dedicated to the Public Domain.
     3    http://creativecommons.org/publicdomain/zero/1.0/ */
     5 function test()
     6 {
     7   waitForExplicitFinish();
     9   gBrowser.selectedTab = gBrowser.addTab();
    10   gBrowser.selectedBrowser.addEventListener("load", function onTabLoad() {
    11     gBrowser.selectedBrowser.removeEventListener("load", onTabLoad, true);
    12     openScratchpad(runTests);
    13   }, true);
    15   content.location = "data:text/html,<p>test run() and display() in Scratchpad";
    16 }
    19 function runTests()
    20 {
    21   let sp = gScratchpadWindow.Scratchpad;
    22   let tests = [{
    23     method: "run",
    24     prepare: function() {
    25       content.wrappedJSObject.foobarBug636725 = 1;
    26       sp.editor.setText("++window.foobarBug636725");
    27     },
    28     then: function([code, , result]) {
    29       is(code, sp.getText(), "code is correct");
    30       is(result, content.wrappedJSObject.foobarBug636725,
    31          "result is correct");
    33       is(sp.getText(), "++window.foobarBug636725",
    34          "run() does not change the editor content");
    36       is(content.wrappedJSObject.foobarBug636725, 2,
    37          "run() updated window.foobarBug636725");
    38     }
    39   },
    40   {
    41     method: "display",
    42     prepare: function() {},
    43     then: function() {
    44       is(content.wrappedJSObject.foobarBug636725, 3,
    45          "display() updated window.foobarBug636725");
    47       is(sp.getText(), "++window.foobarBug636725\n/*\n3\n*/",
    48          "display() shows evaluation result in the textbox");
    50       is(sp.editor.getSelection(), "\n/*\n3\n*/", "getSelection is correct");
    51     }
    52   },
    53   {
    54     method: "run",
    55     prepare: function() {
    56       sp.editor.setText("window.foobarBug636725 = 'a';\n" +
    57         "window.foobarBug636725 = 'b';");
    58       sp.editor.setSelection({ line: 0, ch: 0 }, { line: 0, ch: 29 });
    59     },
    60     then: function([code, , result]) {
    61       is(code, "window.foobarBug636725 = 'a';", "code is correct");
    62       is(result, "a", "result is correct");
    64       is(sp.getText(), "window.foobarBug636725 = 'a';\n" +
    65                        "window.foobarBug636725 = 'b';",
    66          "run() does not change the textbox value");
    68       is(content.wrappedJSObject.foobarBug636725, "a",
    69          "run() worked for the selected range");
    70     }
    71   },
    72   {
    73     method: "display",
    74     prepare: function() {
    75       sp.editor.setText("window.foobarBug636725 = 'c';\n" +
    76                  "window.foobarBug636725 = 'b';");
    77       sp.editor.setSelection({ line: 0, ch: 0 }, { line: 0, ch: 22 });
    78     },
    79     then: function() {
    80       is(content.wrappedJSObject.foobarBug636725, "a",
    81          "display() worked for the selected range");
    83       is(sp.getText(), "window.foobarBug636725" +
    84                        "\n/*\na\n*/" +
    85                        " = 'c';\n" +
    86                        "window.foobarBug636725 = 'b';",
    87          "display() shows evaluation result in the textbox");
    89       is(sp.editor.getSelection(), "\n/*\na\n*/", "getSelection is correct");
    90     }
    91   }];
    93   runAsyncCallbackTests(sp, tests).then(function() {
    94     ok(sp.editor.somethingSelected(), "something is selected");
    95     sp.editor.dropSelection();
    96     ok(!sp.editor.somethingSelected(), "something is no longer selected");
    97     ok(!sp.editor.getSelection(), "getSelection is empty");
    99     // Test undo/redo.
   100     sp.editor.setText("foo1");
   101     sp.editor.setText("foo2");
   102     is(sp.getText(), "foo2", "editor content updated");
   103     sp.undo();
   104     is(sp.getText(), "foo1", "undo() works");
   105     sp.redo();
   106     is(sp.getText(), "foo2", "redo() works");
   108     finish();
   109   });
   110 }

mercurial