Bug 850043 - Part 2. Add test. r=masayuki
authorMakoto Kato <m_kato@ga2.so-net.ne.jp>
Mon, 17 Oct 2016 14:24:47 +0900
changeset 318430 82626681f49c270496088f4fdff8b894bd6bb525
parent 318429 bfa9c87b69e61c1c44968ba29bf9a670332b7a33
child 318431 e3cf8325bf7530f13c331298f1ed1be7ce92ce38
push id20718
push userphilringnalda@gmail.com
push dateWed, 19 Oct 2016 02:58:22 +0000
treeherderfx-team@f52b380bc02e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmasayuki
bugs850043
milestone52.0a1
Bug 850043 - Part 2. Add test. r=masayuki MozReview-Commit-ID: 9iY6udNCQdL
editor/libeditor/tests/mochitest.ini
editor/libeditor/tests/test_bug850043.html
--- a/editor/libeditor/tests/mochitest.ini
+++ b/editor/libeditor/tests/mochitest.ini
@@ -142,16 +142,17 @@ subsuite = clipboard
 [test_bug772796.html]
 [test_bug773262.html]
 [test_bug780035.html]
 [test_bug787432.html]
 [test_bug790475.html]
 [test_bug795785.html]
 [test_bug796839.html]
 [test_bug832025.html]
+[test_bug850043.html]
 [test_bug857487.html]
 [test_bug858918.html]
 [test_bug915962.html]
 [test_bug974309.html]
 skip-if = toolkit == 'android'
 [test_bug966155.html]
 skip-if = os != "win"
 [test_bug966552.html]
new file mode 100644
--- /dev/null
+++ b/editor/libeditor/tests/test_bug850043.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=850043
+-->
+<head>
+  <title>Test for Bug 850043</title>
+  <script type="application/javascript" src="/MochiKit/packed.js"></script>
+  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+  <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
+
+  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+</head>
+
+<body>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=850043">Mozilla Bug 850043</a>
+<div id="display">
+<textarea id="textarea">b&#x9080;&#xe010f;&#x8fba;&#xe0101;</textarea>
+<div contenteditable id="edit">b&#x9080;&#xe010f;&#x8fba;&#xe0101;</div>
+</div>
+<div id="content" style="display: none">
+</div>
+
+<pre id="test">
+</pre>
+<script>
+SimpleTest.waitForExplicitFinish();
+SimpleTest.waitForFocus(() => {
+  let fm = SpecialPowers.Cc["@mozilla.org/focus-manager;1"].
+    getService(SpecialPowers.Ci.nsIFocusManager);
+
+  let element = document.getElementById("textarea");
+  element.focus();
+  is(SpecialPowers.unwrap(fm.focusedElement), element, "failed to move focus");
+
+  synthesizeKey("VK_END", { });
+  synthesizeKey("a", { });
+  is(element.value, "b\u{9080}\u{e010f}\u{8fba}\u{e0101}a", "a isn't last character");
+
+  synthesizeKey("VK_BACK_SPACE", { });
+  synthesizeKey("VK_BACK_SPACE", { });
+  synthesizeKey("VK_BACK_SPACE", { });
+  is(element.value, 'b', "cannot remove all IVS characters");
+
+  element = document.getElementById("edit");
+  element.focus();
+  is(SpecialPowers.unwrap(fm.focusedElement), element, "failed to move focus");
+
+  let sel = window.getSelection();
+  sel.collapse(element.childNodes[0], element.textContent.length);
+
+  synthesizeKey("a", { });
+  is(element.textContent, "b\u{9080}\u{e010f}\u{8fba}\u{e0101}a", "a isn't last character");
+
+  synthesizeKey("VK_BACK_SPACE", { });
+  synthesizeKey("VK_BACK_SPACE", { });
+  synthesizeKey("VK_BACK_SPACE", { });
+  is(element.textContent, 'b', "cannot remove all IVS characters");
+
+  SimpleTest.finish();
+});
+</script>
+</body>
+</html>