blob: 849271c0633502847d11301d885a270ee68bc59d [file] [log] [blame]
<!doctype html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../assert_selection.js"></script>
<script>
// Verifies the selection behavior on undoing a text deletion.
function undoTest(behavior) {
if (window.internals)
internals.settings.setEditingBehavior(behavior);
test(() => assert_selection(
[
'<div contenteditable>',
'This wo<b>rd| </b>should be selected only on mac.',
'</div>'
].join(''),
selection => {
for (let i = 0; i < 4; ++i)
selection.document.execCommand('delete');
selection.document.execCommand('undo');
},
[
'<div contenteditable>',
behavior === 'mac'
? 'This |wo<b>rd^ </b>should be selected only on mac.'
: 'This wo<b>rd| </b>should be selected only on mac.',
'</div>',
].join('')),
`${behavior}: backward delete`);
test(() => assert_selection(
[
'<div contenteditable>',
'This |wo<b>rd </b>should be selected only on mac.',
'</div>'
].join(''),
selection => {
for (let i = 0; i < 4; ++i)
selection.document.execCommand('forwardDelete');
selection.document.execCommand('undo');
},
[
'<div contenteditable>',
behavior === 'mac'
? 'This ^wo<b>rd| </b>should be selected only on mac.'
: 'This |wo<b>rd </b>should be selected only on mac.',
'</div>',
].join('')),
`${behavior}: forward delete`);
test(() => assert_selection(
[
'<div contenteditable>',
'This wo|<b>rd </b>should be selected only on mac.',
'</div>'
].join(''),
selection => {
for (let i = 0; i < 2; ++i)
selection.document.execCommand('delete');
for (let i = 0; i < 2; ++i)
selection.document.execCommand('forwardDelete');
selection.document.execCommand('undo');
},
[
'<div contenteditable>',
behavior === 'mac'
? 'This ^wo<b>rd| </b>should be selected only on mac.'
: 'This wo|<b>rd </b>should be selected only on mac.',
'</div>',
].join('')),
`${behavior}: backward and forward delete`);
}
for (let behavior of ['android', 'mac', 'unix', 'win'])
undoTest(behavior);
</script>