summaryrefslogtreecommitdiffstats
path: root/editor/libeditor/tests/test_bug471722.html
blob: 188c30d2455d299f1a52117c3df6f067b05123e4 (plain)
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
<!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...
          ok(editor.canUndo, "undo should be available");

          // Undo the cut
          editor.undo();
          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...
          ok(editor.canRedo, "redo should be available");
          editor.redo();

          // 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>