summaryrefslogtreecommitdiffstats
path: root/editor/libeditor/tests/test_bug1186799.html
diff options
context:
space:
mode:
Diffstat (limited to 'editor/libeditor/tests/test_bug1186799.html')
-rw-r--r--editor/libeditor/tests/test_bug1186799.html78
1 files changed, 78 insertions, 0 deletions
diff --git a/editor/libeditor/tests/test_bug1186799.html b/editor/libeditor/tests/test_bug1186799.html
new file mode 100644
index 0000000000..f5f14eb9c0
--- /dev/null
+++ b/editor/libeditor/tests/test_bug1186799.html
@@ -0,0 +1,78 @@
+<!DOCTYPE>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=1186799
+-->
+<head>
+ <title>Test for Bug 1186799</title>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <script src="/tests/SimpleTest/EventUtils.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+</head>
+<body>
+<div id="content">
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1186799">Mozilla Bug 1186799</a>
+<p id="display"></p>
+<div id="content">
+ <span id="span">span</span>
+ <div id="editor" contenteditable></div>
+</div>
+<pre id="test">
+<script class="testbody" type="text/javascript">
+
+/** Test for Bug 1186799 **/
+SimpleTest.waitForExplicitFinish();
+SimpleTest.waitForFocus(function() {
+ var span = document.getElementById("span");
+ var editor = document.getElementById("editor");
+ editor.focus();
+
+ synthesizeCompositionChange(
+ { "composition":
+ { "string": "\u3042",
+ "clauses":
+ [
+ { "length": 1, "attr": COMPOSITION_ATTR_RAW_CLAUSE },
+ ],
+ },
+ "caret": { "start": 1, "length": 0 },
+ });
+
+ ok(isThereIMESelection(), "There should be IME selection");
+
+ var compositionEnd = false;
+ editor.addEventListener("compositionend", function() { compositionEnd = true; }, true);
+
+ synthesizeMouseAtCenter(span, {});
+
+ ok(compositionEnd, "composition end should be fired at clicking outside of the editor");
+ ok(!isThereIMESelection(), "There should be no IME selection");
+
+ SimpleTest.finish();
+});
+
+function isThereIMESelection() {
+ var selCon = SpecialPowers.wrap(window).
+ docShell.
+ editingSession.
+ getEditorForWindow(window).
+ selectionController;
+ const kIMESelections = [
+ SpecialPowers.Ci.nsISelectionController.SELECTION_IME_RAWINPUT,
+ SpecialPowers.Ci.nsISelectionController.SELECTION_IME_SELECTEDRAWTEXT,
+ SpecialPowers.Ci.nsISelectionController.SELECTION_IME_CONVERTEDTEXT,
+ SpecialPowers.Ci.nsISelectionController.SELECTION_IME_SELECTEDCONVERTEDTEXT,
+ ];
+ for (var i = 0; i < kIMESelections.length; i++) {
+ var sel = selCon.getSelection(kIMESelections[i]);
+ if (sel && sel.rangeCount) {
+ return true;
+ }
+ }
+ return false;
+}
+
+</script>
+</pre>
+</body>
+</html>