summaryrefslogtreecommitdiffstats
path: root/editor/libeditor/tests/test_bug426246.html
diff options
context:
space:
mode:
Diffstat (limited to 'editor/libeditor/tests/test_bug426246.html')
-rw-r--r--editor/libeditor/tests/test_bug426246.html71
1 files changed, 71 insertions, 0 deletions
diff --git a/editor/libeditor/tests/test_bug426246.html b/editor/libeditor/tests/test_bug426246.html
new file mode 100644
index 0000000000..50e5df2cb4
--- /dev/null
+++ b/editor/libeditor/tests/test_bug426246.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=426246
+-->
+<html>
+<head>
+ <title>Test for Bug 426246</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>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=426246">Mozilla Bug 426246</a>
+<p id="display"></p>
+<div id="content" style="display: none;">
+
+</div>
+
+<div contenteditable="true" id="contenteditable1">
+ <p>first line</p>
+ <p>this is the second line</p>
+</div>
+
+<div contenteditable="true" id="contenteditable2">first line<br>this is the second line</div>
+<div contenteditable="true" id="contenteditable3"><ul><li>first line</li><li>this is the second line</li></ul></div>
+<pre contenteditable="true" id="contenteditable4">first line
+this is the second line</pre>
+
+<pre id="test">
+
+<script class="testbody" type="application/javascript">
+SimpleTest.waitForExplicitFinish();
+SimpleTest.waitForFocus(function() {
+ let elm1 = document.getElementById("contenteditable1");
+ elm1.focus();
+ window.getSelection().collapse(elm1.lastElementChild.firstChild, "this is the ".length);
+ SpecialPowers.doCommand(window, "cmd_deleteToBeginningOfLine");
+ is(elm1.firstElementChild.textContent, "first line", "two paragraphs: the first line should stay untouched");
+ is(elm1.lastElementChild.textContent, "second line", "two paragraphs: the characters after the caret should remain");
+
+ let elm2 = document.getElementById("contenteditable2");
+ elm2.focus();
+ window.getSelection().collapse(elm2.lastChild, "this is the ".length);
+ is(elm2.lastChild.textContent, "this is the second line", "br: correct initial content");
+ SpecialPowers.doCommand(window, "cmd_deleteToBeginningOfLine");
+ is(elm2.firstChild.textContent, "first line", "br: the first line should stay untouched");
+ is(elm2.lastChild.textContent, "second line", "br: the characters after the caret should remain");
+
+ let elm3 = document.getElementById("contenteditable3");
+ elm3.focus();
+ let firstLineLI = elm3.querySelector("li:first-child");
+ let secondLineLI = elm3.querySelector("li:last-child");
+ window.getSelection().collapse(secondLineLI.firstChild, "this is the ".length);
+ is(secondLineLI.textContent, "this is the second line", "li: correct initial content");
+ SpecialPowers.doCommand(window, "cmd_deleteToBeginningOfLine");
+ is(firstLineLI.textContent, "first line", "li: the first line should stay untouched");
+ is(secondLineLI.textContent, "second line", "li: the characters after the caret should remain");
+
+ let elm4 = document.getElementById("contenteditable4");
+ elm4.focus();
+ window.getSelection().collapse(elm4.firstChild, "first line\nthis is the ".length);
+ is(elm4.textContent, "first line\nthis is the second line", "pre: correct initial content");
+ SpecialPowers.doCommand(window, "cmd_deleteToBeginningOfLine");
+ is(elm4.textContent, "first line\nsecond line", "pre: the first line should stay untouched and the characters after the caret in the second line should remain");
+
+ SimpleTest.finish();
+});
+</script>
+</pre>
+</body>
+</html>