chromium/third_party/blink/web_tests/editing/pasteboard/restore-collapsed-space-for-copy.html

<!doctype HTML>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../assert_selection.js"></script>
<script>
test(() => assert_selection(
  '<div style="width: 10em;">Copy this area <a href="http://foo/">AVeryLongWordThatWillWrap</a></div><div contenteditable>|</div>',
  selection => {
    selection.setClipboardData('Copy this area <a href="http://foo/">AVeryLongWordThatWillWrap</a>');
    selection.document.execCommand('paste');
  },
  '<div style="width: 10em;">Copy this area <a href="http://foo/">AVeryLongWordThatWillWrap</a></div><div contenteditable>Copy this area <a href="http://foo/">AVeryLongWordThatWillWrap|</a></div>'),
  '1. Restore the collapsed trailing space');

test(() => assert_selection(
  '<div style="width: 2em;"><b><i>foo </i></b>bar</div><div contenteditable>|</div>',
  selection => {
    selection.setClipboardData('<b><i>foo </i></b>bar');
    selection.document.execCommand('paste');
  },
 '<div style="width: 2em;"><b><i>foo </i></b>bar</div><div contenteditable><b><i>foo </i></b>bar|</div>'),
  '2. Restore the collapsed trailing space');

test(() => assert_selection(
  '<div style="width: 2em;"><b><i>foo</i></b> bar</div><div contenteditable>|</div>',
  selection => {
    selection.setClipboardData('<b><i>foo</i></b> bar');
    selection.document.execCommand('paste');
  },
  '<div style="width: 2em;"><b><i>foo</i></b> bar</div><div contenteditable><b><i>foo</i></b> bar|</div>'),
  '3. Restore the collapsed leading space');

test(() => assert_selection(
  '<div style="width: 2em;">작은홍띠점박이푸른부전나비</div><div contenteditable>|</div>',
  selection => {
    selection.setClipboardData('작은홍띠점박이푸른부전나비');
    selection.document.execCommand('paste');
  },
 '<div style="width: 2em;">작은홍띠점박이푸른부전나비</div><div contenteditable>작은홍띠점박이푸른부전나비|</div>'),
  '4. Space should not be added for CJK');

test(() => assert_selection(
  '<div style="width: 2em; word-break: break-all">Pneumonoultramicroscopicsilicovolcanoconiosis</div><div contenteditable>|</div>',
  selection => {
    selection.setClipboardData('Pneumonoultramicroscopicsilicovolcanoconiosis');
    selection.document.execCommand('paste');
  },
 '<div style="width: 2em; word-break: break-all">Pneumonoultramicroscopicsilicovolcanoconiosis</div><div contenteditable>Pneumonoultramicroscopicsilicovolcanoconiosis|</div>'),
  '5. Space should not be added for CSS word-break: break-all');
</script>