summaryrefslogtreecommitdiffstats
path: root/editor/libeditor/tests/test_bug830600.html
diff options
context:
space:
mode:
Diffstat (limited to 'editor/libeditor/tests/test_bug830600.html')
-rw-r--r--editor/libeditor/tests/test_bug830600.html100
1 files changed, 100 insertions, 0 deletions
diff --git a/editor/libeditor/tests/test_bug830600.html b/editor/libeditor/tests/test_bug830600.html
new file mode 100644
index 000000000..39ced297a
--- /dev/null
+++ b/editor/libeditor/tests/test_bug830600.html
@@ -0,0 +1,100 @@
+<!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=830600
+-->
+<head>
+ <title>Test for Bug 830600</title>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <script src="/tests/SimpleTest/EventUtils.js"></script>
+ <link rel="stylesheet" href="/tests/SimpleTest/test.css">
+</head>
+
+<body>
+ <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=830600">Mozilla Bug 830600</a>
+ <p id="display"></p>
+ <div id="content" style="display: none">
+ </div>
+ <input type="text" id="t1" />
+ <pre id="test">
+ <script type="application/javascript;version=1.7">
+
+ /** Test for Bug 830600 **/
+ SimpleTest.waitForExplicitFinish();
+ SimpleTest.waitForFocus(function() {
+ const Ci = SpecialPowers.Ci;
+ function test(str, expected, callback) {
+ var t = document.getElementById("t1");
+ SpecialPowers.wrap(t).QueryInterface(Ci.nsIDOMNSEditableElement);
+ t.focus();
+ t.value = "";
+ var editor = SpecialPowers.wrap(t).editor;
+ editor.QueryInterface(Ci.nsIPlaintextEditor);
+ var origNewlineHandling = editor.newlineHandling;
+ editor.newlineHandling = Ci.nsIPlaintextEditor.eNewlinesStripSurroundingWhitespace
+ SimpleTest.waitForClipboard(str,
+ function() {
+ SpecialPowers.Cc["@mozilla.org/widget/clipboardhelper;1"]
+ .getService(Ci.nsIClipboardHelper)
+ .copyString(str);
+ },
+ function() {
+ synthesizeKey("V", {accelKey: true});
+ is(t.value, expected, "New line handling works correctly");
+ t.value = "";
+ callback();
+ },
+ function() {
+ ok(false, "Failed to copy the string");
+ SimpleTest.finish();
+ }
+ );
+ }
+
+ function runNextTest() {
+ if (tests.length) {
+ var currentTest = tests.shift();
+ test(currentTest[0], currentTest[1], runNextTest);
+ } else {
+ SimpleTest.finish();
+ }
+ }
+
+ var tests = [
+ ["abc", "abc"],
+ ["\n", ""],
+ [" \n", ""],
+ ["\n ", ""],
+ [" \n ", ""],
+ [" a", " a"],
+ ["a ", "a "],
+ [" a ", " a "],
+ [" \nabc", "abc"],
+ ["\n abc", "abc"],
+ [" \n abc", "abc"],
+ [" \nabc ", "abc "],
+ ["\n abc ", "abc "],
+ [" \n abc ", "abc "],
+ ["abc\n ", "abc"],
+ ["abc \n", "abc"],
+ ["abc \n ", "abc"],
+ [" abc\n ", " abc"],
+ [" abc \n", " abc"],
+ [" abc \n ", " abc"],
+ [" abc \n def \n ", " abcdef"],
+ ["\n abc \n def \n ", "abcdef"],
+ [" \n abc \n def ", "abcdef "],
+ [" abc\n\ndef ", " abcdef "],
+ [" abc \n\n def ", " abcdef "],
+ ];
+
+ runNextTest();
+ });
+
+ </script>
+ </pre>
+</body>
+</html>