<!doctype html>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../assert_selection.js"></script>
<script>
const isMac = navigator.platform.indexOf('Mac') === 0;
const kBehaviors = window.internals ? ['mac', 'win'] : isMac ? ['mac'] : ['win'];
for (const behavior of kBehaviors) {
  if (window.internals) {
    internals.settings.setEditingBehavior(behavior);
    internals.settings.setSelectTrailingWhitespaceEnabled(behavior !== 'mac');
  }

selection_test(
  '<div contenteditable dir="ltr">|Lorem <span style="direction: ltr">ipsum dolor sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">^Lorem| <span style="direction: ltr">ipsum dolor sit</span> amet</div>'
      : '<div contenteditable dir="ltr">^Lorem |<span style="direction: ltr">ipsum dolor sit</span> amet</div>',
  `${behavior} 3-0 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">L|orem <span style="direction: ltr">ipsum dolor sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">L^orem| <span style="direction: ltr">ipsum dolor sit</span> amet</div>'
      : '<div contenteditable dir="ltr">L^orem |<span style="direction: ltr">ipsum dolor sit</span> amet</div>',
  `${behavior} 3-1 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lo|rem <span style="direction: ltr">ipsum dolor sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lo^rem| <span style="direction: ltr">ipsum dolor sit</span> amet</div>'
      : '<div contenteditable dir="ltr">Lo^rem |<span style="direction: ltr">ipsum dolor sit</span> amet</div>',
  `${behavior} 3-2 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lor|em <span style="direction: ltr">ipsum dolor sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lor^em| <span style="direction: ltr">ipsum dolor sit</span> amet</div>'
      : '<div contenteditable dir="ltr">Lor^em |<span style="direction: ltr">ipsum dolor sit</span> amet</div>',
  `${behavior} 3-3 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lore|m <span style="direction: ltr">ipsum dolor sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lore^m| <span style="direction: ltr">ipsum dolor sit</span> amet</div>'
      : '<div contenteditable dir="ltr">Lore^m |<span style="direction: ltr">ipsum dolor sit</span> amet</div>',
  `${behavior} 3-4 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem| <span style="direction: ltr">ipsum dolor sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lorem^ <span style="direction: ltr">ipsum| dolor sit</span> amet</div>'
      : '<div contenteditable dir="ltr">Lorem^ |<span style="direction: ltr">ipsum dolor sit</span> amet</div>',
  `${behavior} 3-5 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">|ipsum dolor sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">^ipsum| dolor sit</span> amet</div>'
      : '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">^ipsum |dolor sit</span> amet</div>',
  `${behavior} 3-6 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">i|psum dolor sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">i^psum| dolor sit</span> amet</div>'
      : '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">i^psum |dolor sit</span> amet</div>',
  `${behavior} 3-7 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ip|sum dolor sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ip^sum| dolor sit</span> amet</div>'
      : '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ip^sum |dolor sit</span> amet</div>',
  `${behavior} 3-8 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ips|um dolor sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ips^um| dolor sit</span> amet</div>'
      : '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ips^um |dolor sit</span> amet</div>',
  `${behavior} 3-9 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsu|m dolor sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsu^m| dolor sit</span> amet</div>'
      : '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsu^m |dolor sit</span> amet</div>',
  `${behavior} 3-10 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum| dolor sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum^ dolor| sit</span> amet</div>'
      : '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum^ |dolor sit</span> amet</div>',
  `${behavior} 3-11 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum |dolor sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum ^dolor| sit</span> amet</div>'
      : '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum ^dolor |sit</span> amet</div>',
  `${behavior} 3-12 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum d|olor sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum d^olor| sit</span> amet</div>'
      : '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum d^olor |sit</span> amet</div>',
  `${behavior} 3-13 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum do|lor sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum do^lor| sit</span> amet</div>'
      : '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum do^lor |sit</span> amet</div>',
  `${behavior} 3-14 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dol|or sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dol^or| sit</span> amet</div>'
      : '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dol^or |sit</span> amet</div>',
  `${behavior} 3-15 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolo|r sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolo^r| sit</span> amet</div>'
      : '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolo^r |sit</span> amet</div>',
  `${behavior} 3-16 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor| sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor^ sit|</span> amet</div>'
      : '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor^ |sit</span> amet</div>',
  `${behavior} 3-17 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor |sit</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor ^sit|</span> amet</div>'
      : '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor ^sit</span> |amet</div>',
  `${behavior} 3-18 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor s|it</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor s^it|</span> amet</div>'
      : '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor s^it</span> |amet</div>',
  `${behavior} 3-19 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor si|t</span> amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor si^t|</span> amet</div>'
      : '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor si^t</span> |amet</div>',
  `${behavior} 3-20 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor sit</span>| amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor sit</span>^ amet|</div>'
      : '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor sit</span>^ |amet</div>',
  `${behavior} 3-21 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor sit</span> |amet</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor sit</span> ^amet|</div>',
  `${behavior} 3-22 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor sit</span> a|met</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor sit</span> a^met|</div>',
  `${behavior} 3-23 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor sit</span> am|et</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor sit</span> am^et|</div>',
  `${behavior} 3-24 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor sit</span> ame|t</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor sit</span> ame^t|</div>',
  `${behavior} 3-25 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor sit</span> amet|</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  '<div contenteditable dir="ltr">Lorem <span style="direction: ltr">ipsum dolor sit</span> amet|</div>',
  `${behavior} 3-26 ltr forward word`);
}
</script>
