| author | Masayuki Nakano <masayuki@d-toybox.com> |
| Tue, 19 Aug 2014 20:54:07 +0900 | |
| changeset 200358 | e8101d5f9defc1c3810c6074d6a3cf292447346d |
| parent 200357 | 8ad345726327b5a71766e2c50e2e0398123be478 |
| child 200359 | 99f640f313595fc5ce635439fbeb9571b7f36629 |
| push id | 27342 |
| push user | ryanvm@gmail.com |
| push date | Tue, 19 Aug 2014 20:23:11 +0000 |
| treeherder | mozilla-central@149d3ce6e020 [default view] [failures only] |
| perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
| reviewers | ehsan |
| bugs | 1053048 |
| milestone | 34.0a1 |
| first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
| last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
| editor/libeditor/tests/chrome.ini | file | annotate | diff | comparison | revisions | |
| editor/libeditor/tests/test_bug1053048.html | file | annotate | diff | comparison | revisions |
--- a/editor/libeditor/tests/chrome.ini +++ b/editor/libeditor/tests/chrome.ini @@ -13,16 +13,17 @@ skip-if = buildapp == 'mulet' skip-if = buildapp == 'mulet' [test_bug607584.xul] [test_bug616590.xul] [test_bug635636.html] [test_bug636465.xul] [test_bug646194.xul] [test_bug780908.xul] [test_bug830600.html] +[test_bug1053048.html] [test_composition_event_created_in_chrome.html] [test_contenteditable_text_input_handling.html] [test_dragdrop.html] skip-if = buildapp == 'mulet' [test_htmleditor_keyevent_handling.html] [test_selection_move_commands.xul] [test_texteditor_keyevent_handling.html] # disables the key handling test on gtk because gtk overrides some key events
new file mode 100644 --- /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 type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> + <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script> + <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/> + <script type="application/javascript"> + + /** Test for Bug 1053048 **/ + SimpleTest.waitForExplicitFinish(); + SimpleTest.waitForFocus(runTests); + + const nsISelectionPrivate = Components.interfaces.nsISelectionPrivate; + const nsISelectionListener = Components.interfaces.nsISelectionListener; + const nsIDOMNSEditableElement = Components.interfaces.nsIDOMNSEditableElement; + + function runTests() + { + var textarea = 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>