<!doctype html>
<meta charset=utf-8>
<title>Selection.modify(): line navigation on a grid container</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
<link rel="author" title="Mozilla" href="https://mozilla.org">
<div id="container" style="display: grid; font-family: monospace">
  <p id="one">One</p>
  <p id="two">Two</p>
  <p id="three">Three</p>
  <p id="four">Four</p>
</div>
<script>
const selection = getSelection();
test(() => {
  // Put the caret in the second character in "One"
  selection.collapse(one.childNodes[0], 2);
  // Move forward a line, selection should be after "Tw".
  selection.modify("extend", "forward", "line")
  assert_equals(selection.focusNode, two.childNodes[0]);
  assert_equals(selection.focusOffset, 2);

  // Move forward another line, selection should be after "Th".
  selection.modify("extend", "forward", "line")
  assert_equals(selection.focusNode, three.childNodes[0]);
  assert_equals(selection.focusOffset, 2);

  assert_equals(selection.toString().replaceAll("\r\n", "\n"), "e\n\nTwo\n\nTh");
}, "forward");

test(() => {
  // Put the caret in the second character in "Three"
  selection.collapse(three.childNodes[0], 2);
  // Move backward a line, selection should be after "Tw".
  selection.modify("extend", "backward", "line")
  assert_equals(selection.focusNode, two.childNodes[0]);
  assert_equals(selection.focusOffset, 2);

  // Move backward another line, selection should be after "On".
  selection.modify("extend", "backward", "line")
  assert_equals(selection.focusNode, one.childNodes[0]);
  assert_equals(selection.focusOffset, 2);

  assert_equals(selection.toString().replaceAll("\r\n", "\n"), "e\n\nTwo\n\nTh");
}, "backward");
</script>
