<!
DOCTYPE>
<
html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=1250010
-->
<
head>
<
title>Test for Bug 1250010</
title>
<
script src=
"/tests/SimpleTest/SimpleTest.js"></
script>
<
link rel=
"stylesheet" href=
"/tests/SimpleTest/test.css">
<
script src=
"/tests/SimpleTest/EventUtils.js"></
script>
</
head>
<
body>
<
div id=
"display">
</
div>
<
div id=
"test1" contenteditable><p><b><
font color=
"red">1234567890</
font></b></p></
div>
<
div id=
"test2" contenteditable><p><
tt>xyz</
tt></p><p><
tt><
img src=
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAIAAABvrngfAAAAFklEQVQImWMwjWhCQwxECoW3oCHihAB0LyYv5/oAHwAAAABJRU5ErkJggg=="></
tt></p></
div>
<
pre id=
"test">
</
pre>
<
script class=
"testbody" type=
"application/javascript">
function getImageDataURI() {
return document.getElementsByTagName(
"img")[0].getAttribute(
"src");
}
/** Test for Bug 1250010 **/
SimpleTest.waitForExplicitFinish();
SimpleTest.waitForFocus(function() {
// First test: Empty paragraph is split correctly.
var div = document.getElementById(
"test1");
div.focus();
synthesizeMouseAtCenter(
div, {});
var sel = window.getSelection();
var selRange = sel.getRangeAt(0);
is(selRange.endContainer.nodeName,
"#text",
"selection should be at the end of text node");
is(selRange.endOffset, 10,
"offset should be 10");
synthesizeKey(
"KEY_Enter");
synthesizeKey(
"KEY_Enter");
sendString(
"b");
synthesizeKey(
"KEY_ArrowUp");
sendString(
"a");
is(
div.innerHTML,
"red\">1234567890
" +
"red\">a
" +
"red\">b
",
"unexpected HTML");
// Second test: Since we modified the
code path that splits non-text nodes,
// test that this works, if the split node is not empty.
div = document.getElementById(
"test2");
div.focus();
synthesizeMouseAtCenter(
div, {});
selRange = sel.getRangeAt(0);
is(selRange.endContainer.nodeName,
"#text",
"selection should be at the end of text node");
is(selRange.endOffset, 3,
"offset should be 3");
// Move behind the image and press enter, insert an
"A".
// That should insert a new empty paragraph with the
"A" after what we have.
synthesizeKey(
"KEY_ArrowRight");
synthesizeKey(
"KEY_ArrowRight");
synthesizeKey(
"KEY_Enter");
sendString(
"A");
// TODO: The <
br> in the new paragraph and the paragraph containing the <
img>
// should be removed at typing
"A" because they are not necessary
// anymore to make the paragraphs visible (bug 503838).
const expectedHTML =
"xyz
" + getImageDataURI() + "\">
" +
"A
";
is(
div.innerHTML,
expectedHTML,
"Pressing Enter after the
should create new paragraph and which contain and new text should be inserted in it"
);
SimpleTest.finish();
});
</
script>
</
body>
</
html>