Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE html>
<meta charset="utf-8">
<title>Test for Bug 1713334</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<script src="/tests/SimpleTest/EventUtils.js"></script>
<link rel="stylesheet" href="/tests/SimpleTest/test.css">
<input id="input">
<textarea id="textarea"></textarea>
<script>
"use strict";
function assertChild(div, content) {
const name = div.parentElement.localName;
is(div.firstChild.nodeType, Node.TEXT_NODE, `<${name}>: The first node of the root element must be a text node`);
is(div.firstChild.textContent, content, `<${name}>: The content of the text node is wrong`);
}
function test(element) {
element.focus();
const { rootElement } = SpecialPowers.wrap(element).editor;
assertChild(rootElement, "");
element.value = "";
assertChild(rootElement, "");
element.value = "foo"
assertChild(rootElement, "foo");
element.value = "";
assertChild(rootElement, "");
element.value = "foo";
const selection =
SpecialPowers.wrap(element).
editor.
selectionController.getSelection(
SpecialPowers.Ci.nsISelectionController.SELECTION_NORMAL
);
selection.setBaseAndExtent(rootElement, 0, rootElement, 1);
document.execCommand("delete");
assertChild(rootElement, "");
}
SimpleTest.waitForExplicitFinish();
SimpleTest.waitForFocus(() => {
test(document.all.input);
test(document.all.textarea);
SimpleTest.finish();
});
</script>