/** Test for Bug 1406726 **/
SimpleTest.waitForExplicitFinish();
SimpleTest.waitForFocus(() => {
let editor = document.getElementById("editor");
let selection = window.getSelection();
editor.focus();
for (let paragraphSeparator of ["div", "p"]) {
document.execCommand("defaultParagraphSeparator", false, paragraphSeparator);
// The result of editor.innerHTML may be wrong in this tests.
// Currently, editor wraps following elements of <br> element with default
// paragraph separator only when there is only non-editable elements.
// This behavior should be standardized by execCommand spec.
editor.innerHTML = "foo bar false\">baz";
selection.collapse(editor.childNodes.item(2), "bar".length);
document.execCommand("insertParagraph", false);
is(editor.innerHTML, "foo " + "<" + paragraphSeparator + ">bar" + paragraphSeparator + ">" + "<" + paragraphSeparator + "> " + paragraphSeparator + ">" + "<" + paragraphSeparator + ">false\">baz" + paragraphSeparator + ">", "All inline nodes including non-editable element should be wrapped with default paragraph separator, <" + paragraphSeparator + ">");
ok(selection.isCollapsed, "Selection should be collapsed");
is(selection.anchorNode, editor.childNodes.item(3), "Caret should be in the third line");
is(selection.anchorOffset, 0, "Caret should be at start of the third line");
editor.innerHTML = "foo bar baz";
selection.collapse(editor.childNodes.item(2), "bar".length);
document.execCommand("insertParagraph", false);
is(editor.innerHTML, "foo " + "<" + paragraphSeparator + ">bar" + paragraphSeparator + ">" + "<" + paragraphSeparator + "> " + paragraphSeparator + ">" + "baz", "All inline nodes in the second line should be wrapped with default paragraph separator, <" + paragraphSeparator + ">");
ok(selection.isCollapsed, "Selection should be collapsed");
is(selection.anchorNode, editor.childNodes.item(3), "Caret should be in the third line");
is(selection.anchorOffset, 0, "Caret should be at start of the third line");
editor.innerHTML = "foo bar false\">bazqux";
selection.collapse(editor.childNodes.item(2), "bar".length);
document.execCommand("insertParagraph", false);
is(editor.innerHTML, "foo " + "<" + paragraphSeparator + ">bar" + paragraphSeparator + ">" + "<" + paragraphSeparator + "> " + paragraphSeparator + ">" + "false\">bazqux", "All inline nodes in the second line should be wrapped with default paragraph separator, <" + paragraphSeparator + ">");
ok(selection.isCollapsed, "Selection should be collapsed");
is(selection.anchorNode, editor.childNodes.item(3), "Caret should be in the third line");
is(selection.anchorOffset, 0, "Caret should be at start of the third line");
editor.innerHTML = "foo bar false\">baz";
selection.collapse(editor.childNodes.item(2), "ba".length);
document.execCommand("insertParagraph", false);
is(editor.innerHTML, "foo " + "<" + paragraphSeparator + ">ba" + paragraphSeparator + ">" + "<" + paragraphSeparator + ">r" + paragraphSeparator + ">" + "<" + paragraphSeparator + ">false\">baz" + paragraphSeparator + ">", "All inline nodes including non-editable element should be wrapped with default paragraph separator, <" + paragraphSeparator + ">");
ok(selection.isCollapsed, "Selection should be collapsed");
is(selection.anchorNode, editor.childNodes.item(3).firstChild, "Caret should be in the text node in the third line");
is(selection.anchorOffset, 0, "Caret should be at start of the text node in the third line");
editor.innerHTML = "foo bar baz";
selection.collapse(editor.childNodes.item(2), "ba".length);
document.execCommand("insertParagraph", false);
is(editor.innerHTML, "foo " + "<" + paragraphSeparator + ">ba" + paragraphSeparator + ">" + "<" + paragraphSeparator + ">r" + paragraphSeparator + ">" + "baz", "All inline nodes in the second line should be wrapped with default paragraph separator, <" + paragraphSeparator + ">");
ok(selection.isCollapsed, "Selection should be collapsed");
is(selection.anchorNode, editor.childNodes.item(3).firstChild, "Caret should be in the text node in the third line");
is(selection.anchorOffset, 0, "Caret should be at start of the text node in the third line");
editor.innerHTML = "foo bar false\">bazqux";
selection.collapse(editor.childNodes.item(2), "ba".length);
document.execCommand("insertParagraph", false);
is(editor.innerHTML, "foo " + "<" + paragraphSeparator + ">ba" + paragraphSeparator + ">" + "<" + paragraphSeparator + ">r" + paragraphSeparator + ">" + "false\">bazqux", "All inline nodes in the second line should be wrapped with default paragraph separator, <" + paragraphSeparator + ">");
ok(selection.isCollapsed, "Selection should be collapsed");
is(selection.anchorNode, editor.childNodes.item(3).firstChild, "Caret should be in the text node in the third line");
is(selection.anchorOffset, 0, "Caret should be at start of the text node in the third line");
}
SimpleTest.finish();
});
</script>
</pre>
</body>
</html>
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.