DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (ef8f91e97c99)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
<!DOCTYPE HTML>
<!-- This Source Code Form is subject to the terms of the Mozilla Public
   - License, v. 2.0. If a copy of the MPL was not distributed with this
   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=471722
-->

<head>
  <title>Test for Bug 471722</title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
  <script src="/tests/SimpleTest/EventUtils.js"></script>  
</head>

<body onload="doTest();">
  <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471722">Mozilla Bug 471722</a>
  <p id="display"></p>
  <div id="content" style="display: none">
  </div>

  <pre id="test">
    <script type="application/javascript">

      /** Test for Bug 471722 **/

      SimpleTest.waitForExplicitFinish();

      function doTest() {
        var t1 = $("t1");
        var editor = SpecialPowers.wrap(t1).editor;

        ok(editor, "able to get editor for the element");
        t1.focus();
        t1.select();

        try {
          // Cut the initial text in the textbox
          ok(editor.canCut(), "can cut text");
          editor.cut();
          is(t1.value, "", "initial text was removed");

          // So now we will have emptied the textfield and the editor will have
          // created a padding <br> element for empty editor.
          // Check the transaction is in the undo stack...
          var t1Enabled = {};
          var t1CanUndo = {};
          editor.canUndo(t1Enabled, t1CanUndo);
          ok(t1CanUndo.value, "undo is enabled");

          // Undo the cut
          editor.undo(1);
          is(t1.value, "minefield", "text reinserted");

          // So now, the cut should be in the redo stack, so executing the redo
          // will clear the text once again and reinsert the padding <br>
          // element for empty editor that was removed after undo.
          // This will require the editor to figure out that we have a padding
          // <br> element again...
          var t1CanRedo = {};
          editor.canRedo(t1Enabled, t1CanRedo);
          ok(t1CanRedo.value, "redo is enabled");
          editor.redo(1);

          // Did the editor notice a padding <br> element for empty editor
          // reappeared?
          is(t1.value, "", "editor found padding <br> element");
       } catch (e) {
         ok(false, "test failed with error " + e);
       }
       SimpleTest.finish();
     }
   </script>
  </pre>

  <input type="text" value="minefield" id="t1" />
</body>
</html>