blob: 694bda63a4268f784d7e7473133a2a1a7b0fe43b [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<p id="description">This test checks that copy a selection and paste over the same selection does not create nested divs.</p>
<div id="console"></div>
<script>
var sel = document.getSelection();
var root = document.createElement("root");
document.body.appendChild(root);
function createEditable(tagName, markup) {
var node = document.createElement(tagName);
node.contentEditable = true;
node.innerHTML = markup;
return node;
}
function testCopyPaste(tagName, originalMarkup, expected) {
var node = createEditable(tagName, originalMarkup);
root.appendChild(node);
node.focus();
document.execCommand("SelectAll", false);
document.execCommand("Copy", false);
document.execCommand("Paste", false);
confirmedMarkup = node.innerHTML;
shouldBe("confirmedMarkup", "'" + expected + "'");
}
testCopyPaste("div", "Hello", "Hello");
testCopyPaste("div", "Hello<br>world", "Hello<br>world");
testCopyPaste("div", "<div>Hello</div><div>world</div>", "<div>Hello</div><div>world</div>");
testCopyPaste("div", "<div><div>Hello</div><div>world</div></div>", "<div>Hello</div><div>world</div>");
testCopyPaste("div", "<div><b><i>Hello</i></b></div><div><b><i>world</i></b></div>", "<div><b><i>Hello</i></b></div><div><b><i>world</i></b></div>");
testCopyPaste("div", "<div style=\"text-align: center;\"><div><font color=\"#ff0000\"><b><i>hello</i></b></font></div><div><font color=\"#ff0000\"><b><i>world</i></b></font></div></div>", "<div style=\"text-align: center;\"><div><font color=\"#ff0000\"><b><i>hello</i></b></font></div><div><font color=\"#ff0000\"><b><i>world</i></b></font></div></div>");
testCopyPaste("div", "<p>Line One</p>&#10;<p>Line Two</p>", "<p>Line One</p><p>Line Two</p>");
root.style.display = "none";
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>