blob: a6ddeb93c123ac8e0aa5247a1c83a3e6bcffc031 [file] [log] [blame]
<!doctype html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../assert_selection.js"></script>
<script>
// Test for https://bugs.webkit.org/show_bug.cgi?id=42941
function populateUndoStack(selection) {
const div = selection.document.querySelector('div');
selection.document.execCommand('insertParagraph');
selection.setBaseAndExtent(div.firstChild, 0, div.firstChild, 2);
selection.document.execCommand('bold');
selection.document.execCommand('undo');
selection.document.execCommand('undo');
}
test(() => assert_selection(
'<div contenteditable>he|llo</div>',
selection => populateUndoStack(selection),
'<div contenteditable>he|llo</div>'),
'undo');
test(() => assert_selection(
'<div contenteditable>he|llo</div>',
selection => {
populateUndoStack(selection);
selection.document.execCommand('redo');
selection.document.execCommand('redo');
},
'<div contenteditable><b>^he|</b><div>llo</div></div>'),
'redo');
test(() => assert_selection(
'<div contenteditable>he|llo</div>',
selection => {
const div = selection.document.querySelector('div');
populateUndoStack(selection);
div.firstChild.remove();
selection.document.execCommand('redo');
selection.document.execCommand('redo');
},
'<div contenteditable><div>|hello</div></div>'),
'redo with removing node');
</script>