<!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">|car means \u05D0\u05D1\u05D2.</div>',
  selection => selection.modify('extend', 'backward', 'word'),
  '<div contenteditable dir="ltr">|car means \u05D0\u05D1\u05D2.</div>',
  `${behavior} 16-0 ltr backward word`);

selection_test(
  '<div contenteditable dir="ltr">c|ar means \u05D0\u05D1\u05D2.</div>',
  selection => selection.modify('extend', 'backward', 'word'),
  '<div contenteditable dir="ltr">|c^ar means \u05D0\u05D1\u05D2.</div>',
  `${behavior} 16-1 ltr backward word`);

selection_test(
  '<div contenteditable dir="ltr">ca|r means \u05D0\u05D1\u05D2.</div>',
  selection => selection.modify('extend', 'backward', 'word'),
  '<div contenteditable dir="ltr">|ca^r means \u05D0\u05D1\u05D2.</div>',
  `${behavior} 16-2 ltr backward word`);

selection_test(
  '<div contenteditable dir="ltr">car| means \u05D0\u05D1\u05D2.</div>',
  selection => selection.modify('extend', 'backward', 'word'),
  '<div contenteditable dir="ltr">|car^ means \u05D0\u05D1\u05D2.</div>',
  `${behavior} 16-3 ltr backward word`);

selection_test(
  '<div contenteditable dir="ltr">car |means \u05D0\u05D1\u05D2.</div>',
  selection => selection.modify('extend', 'backward', 'word'),
  '<div contenteditable dir="ltr">|car ^means \u05D0\u05D1\u05D2.</div>',
  `${behavior} 16-4 ltr backward word`);

selection_test(
  '<div contenteditable dir="ltr">car m|eans \u05D0\u05D1\u05D2.</div>',
  selection => selection.modify('extend', 'backward', 'word'),
  '<div contenteditable dir="ltr">car |m^eans \u05D0\u05D1\u05D2.</div>',
  `${behavior} 16-5 ltr backward word`);

selection_test(
  '<div contenteditable dir="ltr">car me|ans \u05D0\u05D1\u05D2.</div>',
  selection => selection.modify('extend', 'backward', 'word'),
  '<div contenteditable dir="ltr">car |me^ans \u05D0\u05D1\u05D2.</div>',
  `${behavior} 16-6 ltr backward word`);

selection_test(
  '<div contenteditable dir="ltr">car mea|ns \u05D0\u05D1\u05D2.</div>',
  selection => selection.modify('extend', 'backward', 'word'),
  '<div contenteditable dir="ltr">car |mea^ns \u05D0\u05D1\u05D2.</div>',
  `${behavior} 16-7 ltr backward word`);

selection_test(
  '<div contenteditable dir="ltr">car mean|s \u05D0\u05D1\u05D2.</div>',
  selection => selection.modify('extend', 'backward', 'word'),
  '<div contenteditable dir="ltr">car |mean^s \u05D0\u05D1\u05D2.</div>',
  `${behavior} 16-8 ltr backward word`);

selection_test(
  '<div contenteditable dir="ltr">car means| \u05D0\u05D1\u05D2.</div>',
  selection => selection.modify('extend', 'backward', 'word'),
  '<div contenteditable dir="ltr">car |means^ \u05D0\u05D1\u05D2.</div>',
  `${behavior} 16-9 ltr backward word`);

selection_test(
  '<div contenteditable dir="ltr">car means |\u05D0\u05D1\u05D2.</div>',
  selection => selection.modify('extend', 'backward', 'word'),
  '<div contenteditable dir="ltr">car |means ^\u05D0\u05D1\u05D2.</div>',
  `${behavior} 16-10 ltr backward word`);

selection_test(
  '<div contenteditable dir="ltr">car means \u05D0|\u05D1\u05D2.</div>',
  selection => selection.modify('extend', 'backward', 'word'),
  '<div contenteditable dir="ltr">car means |\u05D0^\u05D1\u05D2.</div>',
  `${behavior} 16-11 ltr backward word`);

selection_test(
  '<div contenteditable dir="ltr">car means \u05D0\u05D1|\u05D2.</div>',
  selection => selection.modify('extend', 'backward', 'word'),
  '<div contenteditable dir="ltr">car means |\u05D0\u05D1^\u05D2.</div>',
  `${behavior} 16-12 ltr backward word`);

selection_test(
  '<div contenteditable dir="ltr">car means \u05D0\u05D1\u05D2|.</div>',
  selection => selection.modify('extend', 'backward', 'word'),
  '<div contenteditable dir="ltr">car means |\u05D0\u05D1\u05D2^.</div>',
  `${behavior} 16-13 ltr backward word`);
}
</script>
