<!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 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 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>'),
  '3. 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>'),
  '4. Space should not be added for CSS word-break: break-all');
</script>
