blob: ac2deb8d744de73abe8b93e38e1861a66694ac6c [file] [log] [blame]
<!doctype html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../assert_selection.js"></script>
<script>
// This tests for a bug in GMail's Editor, they try to extract the contents
// of a range that has had it's contents removed from the document by an
// editing command. Since the bug 43017 requires WebKit does not remove
// anchor elements, div should be empty after the extraction. We currently
// leave anchor element in the div due to the Bug 47916.
test(() => assert_selection(
[
'<div contenteditable id="div" >',
'|dog<a href="http://example.com/">food</a>',
'</div>',
].join(''),
selection => {
selection.document.execCommand('selectAll');
selection.document.execCommand('removeFormat');
},
[
'<div contenteditable id="div">',
'^dog<a href="http://example.com/">food|</a>',
'</div>',
].join('')),
'removeFormat command should not remove A element.');
test(() => assert_selection(
[
'<div contenteditable id="div" >',
'|dog<a href="http://example.com/">food</a>',
'</div>',
].join(''),
selection => {
var div = selection.document.getElementById("div");
var text = div.firstChild;
var link = div.lastChild;
div.focus();
var range = selection.document.createRange();
range.setStart(text, 0);
range.setEnd(link, link.childNodes.length);
selection.document.execCommand('selectAll');
selection.document.execCommand('removeFormat');
var result = range.extractContents();
var element = selection.document.createElement('div');
element.appendChild(result);
assert_equals(element.innerHTML,
'dog<a href="http://example.com/">food</a>');
},
[
'<div contenteditable id="div">',
'|<a href="http://example.com/"></a>',
'</div>',
].join('')),
'Range#extractContents() extracts A with anchor text but leaves A.');
</script>