diff options
Diffstat (limited to 'editor/libeditor/tests/test_bug1053048.html')
-rw-r--r-- | editor/libeditor/tests/test_bug1053048.html | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/editor/libeditor/tests/test_bug1053048.html b/editor/libeditor/tests/test_bug1053048.html new file mode 100644 index 000000000..4032d32c2 --- /dev/null +++ b/editor/libeditor/tests/test_bug1053048.html @@ -0,0 +1,73 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=1053048 +--> +<head> + <meta charset="utf-8"> + <title>Test for Bug 1053048</title> + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <script src="/tests/SimpleTest/EventUtils.js"></script> + <link rel="stylesheet" href="/tests/SimpleTest/test.css"> + <script type="application/javascript"> + + /** Test for Bug 1053048 **/ + SimpleTest.waitForExplicitFinish(); + SimpleTest.waitForFocus(runTests); + + const nsISelectionPrivate = SpecialPowers.Ci.nsISelectionPrivate; + const nsISelectionListener = SpecialPowers.Ci.nsISelectionListener; + const nsIDOMNSEditableElement = SpecialPowers.Ci.nsIDOMNSEditableElement; + + function runTests() + { + var textarea = SpecialPowers.wrap(document.getElementById("textarea")); + textarea.focus(); + + var editor = textarea.QueryInterface(nsIDOMNSEditableElement).editor; + var selectionPrivate = editor.selection.QueryInterface(nsISelectionPrivate); + + var selectionListener = { + count: 0, + notifySelectionChanged: function (aDocument, aSelection, aReason) + { + ok(true, "selectionStart: " + textarea.selectionStart); + ok(true, "selectionEnd: " + textarea.selectionEnd); + this.count++; + } + }; + + // Move caret to the end of the textarea + synthesizeMouse(textarea, 290, 10, {}); + is(textarea.selectionStart, 3, "selectionStart should be 3 (after \"foo\")"); + is(textarea.selectionEnd, 3, "selectionEnd should be 3 (after \"foo\")"); + + selectionPrivate.addSelectionListener(selectionListener); + + sendKey("RETURN"); + is(selectionListener.count, 1, "nsISelectionListener.notifySelectionChanged() should be called"); + is(textarea.selectionStart, 4, "selectionStart should be 4"); + is(textarea.selectionEnd, 4, "selectionEnd should be 4"); + is(textarea.value, "foo\n", "The line break should be appended"); + + selectionPrivate.removeSelectionListener(selectionListener); + SimpleTest.finish(); + } + </script> +</head> +<body> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1053048">Mozilla Bug 1053048</a> +<p id="display"></p> +<div id="content" style="display: none"> + +</div> + +<textarea id="textarea" + style="height: 100px; width: 300px; -moz-appearance: none" + spellcheck="false" + onkeydown="this.style.display='block'; this.style.height='200px';">foo</textarea> + +<pre id="test"> +</pre> +</body> +</html> |