tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

modify.tentative.html (3053B)


      1 <!DOCTYPE html>
      2 <meta charset="utf-8">
      3 <title>Selection.modify() tests</title>
      4 <script src=/resources/testharness.js></script>
      5 <script src=/resources/testharnessreport.js></script>
      6 
      7 <div>Test, these are <strong id="strong"> strong </strong> <em id="em"> italic </em> normal.</div>
      8 
      9 <pre id="preLinefeed">
     10 foo
     11 bar
     12 </pre>
     13 
     14 <pre id="preBr">
     15 foo<br>bar
     16 </pre>
     17 
     18 <pre id="preLinefeedBr">
     19 foo
     20 <br>
     21 bar
     22 </pre>
     23 
     24 <script>
     25 const selection = getSelection();
     26 test(() => {
     27  selection.collapse(strong.childNodes[0], 4);
     28  selection.modify("extend", "backward", "word")
     29  assert_equals(selection.focusNode, strong.childNodes[0]);
     30  assert_equals(selection.focusOffset, 1);
     31  selection.collapse(em.childNodes[0], 4);
     32  selection.modify("extend", "backward", "word")
     33  assert_equals(selection.focusNode, em.childNodes[0]);
     34  assert_equals(selection.focusOffset, 1);
     35 }, "Stop at previous word boundary when whitespaces are trimmed");
     36 
     37 test(() => {
     38  const preLinefeed = document.getElementById("preLinefeed");
     39  const textChild = preLinefeed.childNodes[0];
     40  selection.collapse(textChild, 3);
     41  selection.modify("move", "forward", "character");
     42  assert_equals(selection.focusNode, textChild);
     43  assert_equals(selection.focusOffset, 4);
     44 }, "Jump linefeed forward");
     45 
     46 test(() => {
     47  const preLinefeed = document.getElementById("preLinefeed");
     48  const textChild = preLinefeed.childNodes[0];
     49  selection.collapse(textChild, 4);
     50  selection.modify("move", "backward", "character");
     51  assert_equals(selection.focusNode, textChild);
     52  assert_equals(selection.focusOffset, 3);
     53 }, "Jump linefeed backward");
     54 
     55 test(() => {
     56  const preBr = document.getElementById("preBr");
     57  const [firstTextChild, br, secondTextChild] = preBr.childNodes;
     58  selection.collapse(firstTextChild, 3);
     59  selection.modify("move", "forward", "character");
     60  assert_equals(selection.focusNode, secondTextChild);
     61  assert_equals(selection.focusOffset, 0);
     62 }, "Jump <br> forward");
     63 
     64 test(() => {
     65  const preBr = document.getElementById("preBr");
     66  const [firstTextChild, br, secondTextChild] = preBr.childNodes;
     67  selection.collapse(secondTextChild, 0);
     68  selection.modify("move", "backward", "character");
     69  assert_equals(selection.focusNode, firstTextChild);
     70  assert_equals(selection.focusOffset, 3);
     71 }, "Jump <br> backward");
     72 
     73 test(() => {
     74  const preLinefeedBr = document.getElementById("preLinefeedBr");
     75  selection.collapse(preLinefeedBr, 1);
     76  selection.modify("move", "forward", "character");
     77  const secondTextChild = preLinefeedBr.childNodes[2];
     78  assert_equals(selection.focusNode, secondTextChild);
     79  assert_equals(selection.focusOffset, 0);
     80 }, "Jump <br> forward which follows a linefeed");
     81 
     82 test(() => {
     83  const preLinefeedBr = document.getElementById("preLinefeedBr");
     84  selection.collapse(preLinefeedBr, 2);
     85  selection.modify("move", "backward", "character");
     86  const textChild = preLinefeedBr.childNodes[0];
     87  assert_equals(selection.focusNode, textChild);
     88  assert_equals(selection.focusOffset, textChild.textContent.length);
     89 }, "Jump <br> backward which follows a linefeed");
     90 </script>