tor-browser

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

insert-space-at-beginning-of-wrapped-line.html (1828B)


      1 <!DOCTYPE html>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 <script src="/resources/testdriver.js"></script>
      5 <script src="/resources/testdriver-vendor.js"></script>
      6 <script src="/resources/testdriver-actions.js"></script>
      7 <script src="../include/editor-test-utils.js"></script>
      8 <style>
      9  #textarea,
     10  #plaintext,
     11  #richedit {
     12    font-family: "Courier", monospace;
     13    width: 10ch;
     14  }
     15  #plaintext,
     16  #richedit {
     17    border: 1px solid black;
     18    white-space: pre-wrap;
     19  }
     20 </style>
     21 <textarea id="textarea"></textarea>
     22 <div id="plaintext" contenteditable="plaintext-only"></div>
     23 <div id="richedit" contenteditable></div>
     24 <script>
     25  async function runInElement(element, before, after) {
     26    promise_test(async () => {
     27      const utils = new EditorTestUtils(element);
     28      let offset = before.length;
     29      let acutal;
     30      if (element.tagName === "TEXTAREA") {
     31        element.value = before + after;
     32        element.focus();
     33        element.setSelectionRange(offset, offset);
     34        await utils.sendKey(" ");
     35        actual = element.value;
     36      } else {
     37        element.textContent = before + after;
     38        let textNode = element.firstChild;
     39        window
     40          .getSelection()
     41          .setBaseAndExtent(textNode, offset, textNode, offset);
     42        await utils.sendKey(" ");
     43        actual = element.textContent;
     44      }
     45      assert_equals(actual, before + " " + after);
     46    }, `Typing space at "${before}|${after}" should insert a space in ${element.id}`);
     47  }
     48 
     49  function run(before, after) {
     50    runInElement(textarea, before, after);
     51    runInElement(plaintext, before, after);
     52    runInElement(richedit, before, after);
     53  }
     54  run("123456789 ", "XY");
     55  run("12345     ", "XY");
     56  run("12345        ", "XY");
     57  run("123456789-", "XY");
     58 </script>