chromium/third_party/blink/web_tests/editing/undo/undo-delete-boundary.html

<!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>