diff options
Diffstat (limited to 'editor/libeditor/tests/test_bug471722.html')
-rw-r--r-- | editor/libeditor/tests/test_bug471722.html | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/editor/libeditor/tests/test_bug471722.html b/editor/libeditor/tests/test_bug471722.html new file mode 100644 index 000000000..74ff55307 --- /dev/null +++ b/editor/libeditor/tests/test_bug471722.html @@ -0,0 +1,81 @@ +<!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 type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> + <script type="text/javascript" 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 = null; + + if (t1 instanceof SpecialPowers.Ci.nsIDOMNSEditableElement) + 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 bogus node + // 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 bogus node that was removed after undo. + // This will require the editor to figure out that we have a + // bogus node again... + var t1CanRedo = {}; + editor.canRedo(t1Enabled, t1CanRedo); + ok(t1CanRedo.value, "redo is enabled"); + editor.redo(1); + + // Did the editor notice a bogus node reappeared? + is(t1.value, "", "editor found bogus node"); + } catch (e) { + ok(false, "test failed with error "+e); + } + SimpleTest.finish(); + } + </script> + </pre> + + <input type="text" value="minefield" id="t1" /> +</body> +</html> |