chromium/third_party/blink/web_tests/editing/execCommand/transpose_with_unfocused_selection.html

<!doctype html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../assert_selection.js"></script>
<script>
test(() => {
  assert_own_property(window, 'testRunner', 'This test requires testRunner');

  assert_selection(
  [
    '<textarea>t|ext</textarea>',
    '<a href="http://www.example.com/">link</a>'
  ].join(''),
  selection => {
    const link = selection.document.querySelector('a');
    link.focus();
    testRunner.execCommand('transpose');
    assert_equals(selection.document.activeElement, link);
  },
  [
    '|<textarea>text</textarea>',
    '<a href="http://www.example.com/">link</a>'
  ].join(''));
}, 'Transpose with unfocused selection in text control');

test(() => {
  assert_own_property(window, 'testRunner', 'This test requires testRunner');

  assert_selection(
  [
    '<div contenteditable>t|ext</div>',
    '<a href="http://www.example.com/">link</a>'
  ].join(''),
  selection => {
    const link = selection.document.querySelector('a');
    link.focus();
    testRunner.execCommand('transpose');
    assert_equals(selection.document.activeElement, link);
  },
  [
    '<div contenteditable>t|ext</div>',
    '<a href="http://www.example.com/">link</a>'
  ].join(''));
}, 'Transpose with unfocused selection in contenteditable div');
</script>