<!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">|\nabc efd dabeb\n</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">\n^abc| efd dabeb\n</div>'
      : '<div contenteditable dir="ltr">\n^abc |efd dabeb\n</div>',
  `${behavior} 13-0 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">\n|abc efd dabeb\n</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">\n^abc| efd dabeb\n</div>'
      : '<div contenteditable dir="ltr">\n^abc |efd dabeb\n</div>',
  `${behavior} 13-1 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">\na|bc efd dabeb\n</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">\na^bc| efd dabeb\n</div>'
      : '<div contenteditable dir="ltr">\na^bc |efd dabeb\n</div>',
  `${behavior} 13-2 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">\nab|c efd dabeb\n</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">\nab^c| efd dabeb\n</div>'
      : '<div contenteditable dir="ltr">\nab^c |efd dabeb\n</div>',
  `${behavior} 13-3 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">\nabc| efd dabeb\n</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">\nabc^ efd| dabeb\n</div>'
      : '<div contenteditable dir="ltr">\nabc^ |efd dabeb\n</div>',
  `${behavior} 13-4 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">\nabc |efd dabeb\n</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">\nabc ^efd| dabeb\n</div>'
      : '<div contenteditable dir="ltr">\nabc ^efd |dabeb\n</div>',
  `${behavior} 13-5 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">\nabc e|fd dabeb\n</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">\nabc e^fd| dabeb\n</div>'
      : '<div contenteditable dir="ltr">\nabc e^fd |dabeb\n</div>',
  `${behavior} 13-6 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">\nabc ef|d dabeb\n</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">\nabc ef^d| dabeb\n</div>'
      : '<div contenteditable dir="ltr">\nabc ef^d |dabeb\n</div>',
  `${behavior} 13-7 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">\nabc efd| dabeb\n</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  behavior === 'mac'
      ? '<div contenteditable dir="ltr">\nabc efd^ dabeb|\n</div>'
      : '<div contenteditable dir="ltr">\nabc efd^ |dabeb\n</div>',
  `${behavior} 13-8 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">\nabc efd |dabeb\n</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  '<div contenteditable dir="ltr">\nabc efd ^dabeb|\n</div>',
  `${behavior} 13-9 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">\nabc efd d|abeb\n</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  '<div contenteditable dir="ltr">\nabc efd d^abeb|\n</div>',
  `${behavior} 13-10 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">\nabc efd da|beb\n</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  '<div contenteditable dir="ltr">\nabc efd da^beb|\n</div>',
  `${behavior} 13-11 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">\nabc efd dab|eb\n</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  '<div contenteditable dir="ltr">\nabc efd dab^eb|\n</div>',
  `${behavior} 13-12 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">\nabc efd dabe|b\n</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  '<div contenteditable dir="ltr">\nabc efd dabe^b|\n</div>',
  `${behavior} 13-13 ltr forward word`);

selection_test(
  '<div contenteditable dir="ltr">\nabc efd dabeb|\n</div>',
  selection => selection.modify('extend', 'forward', 'word'),
  '<div contenteditable dir="ltr">\nabc efd dabeb|\n</div>',
  `${behavior} 13-14 ltr forward word`);
}
</script>
