blob: 09538fdb253c11f97742a9426f682cc8dca07d8a [file] [log] [blame]
<script src="../../resources/js-test.js"></script>
<div id="console"></div>
<script>
function testPartialSelection(initialContents, expectedContents, command, argument) {
testContainer.innerHTML = initialContents;
var selection = window.getSelection();
selection.collapse(testContainer, 0);
selection.modify("move", "forward", "character");
selection.extend(selection.focusNode, 3)
document.execCommand(command, false, argument);
if (testContainer.innerHTML === expectedContents) {
testPassed(command + " command converted " + initialContents + " to " + expectedContents);
} else {
testFailed(command + " command converted " + initialContents + " to " + testContainer.innerHTML + ", expected " + expectedContents);
}
}
var testContainer = document.createElement("div");
testContainer.contentEditable = true;
document.body.appendChild(testContainer);
testPartialSelection('<a id="abc"><b>fbabaz</b></a>', '<b><a id="abc">f</a><a href="http://www.google.com">ba</a><a>baz</a></b>', 'createLink', 'http://www.google.com');
testPartialSelection('<a name="abc"><b>fbabaz</b></a>', '<b><a name="abc">f</a><a href="http://www.google.com">ba</a><a>baz</a></b>', 'createLink', 'http://www.google.com');
testPartialSelection('<a id="abc" name="abc"><b>fbabaz</b></a>', '<b><a id="abc" name="abc">f</a><a href="http://www.google.com">ba</a><a>baz</a></b>', 'createLink', 'http://www.google.com');
testPartialSelection('<a id="abc"><b>fbabaz</b></a>', '<b><a id="abc">f</a>ba<a>baz</a></b>', 'unlink');
testPartialSelection('<a name="abc"><b>fbabaz</b></a>', '<b><a name="abc">f</a>ba<a>baz</a></b>', 'unlink');
testPartialSelection('<a id="abc" name="abc"><b>fbabaz</b></a>', '<b><a id="abc" name="abc">f</a>ba<a>baz</a></b>', 'unlink');
testPartialSelection('<span id="abc" name="abc"><b>fbabaz</b></span>', '<span id="abc" name="abc"><b>f<a href="http://www.google.com">ba</a>baz</b></span>', 'createLink', 'http://www.google.com');
document.body.removeChild(testContainer);
var successfullyParsed = true;
</script>