blob: a56a3825a737dc4e0c6135f8d4d8da463e30ae45 [file] [log] [blame]
<!doctype html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../assert_selection.js"></script>
<script>
function undoTest(behavior) {
if (window.internals)
internals.settings.setEditingBehavior(behavior);
test(() => assert_selection(
[
'<div contenteditable>',
'This word| 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 |word^ should be selected only on mac.'
: 'This word| should be selected only on mac.',
'</div>',
].join('')),
`${behavior}: backward delete`);
test(() => assert_selection(
[
'<div contenteditable>',
'This |word 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 ^word| should be selected only on mac.'
: 'This |word should be selected only on mac.',
'</div>',
].join('')),
`${behavior}: forward delete`);
test(() => assert_selection(
[
'<div contenteditable>',
'This wo|rd 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 ^word| should be selected only on mac.'
: 'This wo|rd should be selected only on mac.',
'</div>',
].join('')),
`${behavior}: backward and forward delete`);
}
for (let behavior of ['android', 'mac', 'unix', 'win'])
undoTest(behavior);
</script>