tor-browser

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

onselectionchange-on-distinct-text-controls.html (1788B)


      1 <!DOCTYPE html>
      2 <meta charset="utf-8">
      3 <link rel="help" href="https://w3c.github.io/selection-api/#selectionchange-event">
      4 <script src="/resources/testharness.js"></script>
      5 <script src="/resources/testharnessreport.js"></script>
      6 <body>
      7 <input id="input1" value="hello">
      8 <input id="input2" value="world">
      9 <textarea id="textarea1">hello</textarea>
     10 <textarea id="textarea2">world</textarea>
     11 <script>
     12 
     13 promise_test(() => {
     14  return (async function() {
     15    let selectionChangeCount1 = 0;
     16    let selectionChangeCount2 = 0;
     17    input1.addEventListener("selectionchange", () => ++selectionChangeCount1);
     18    input2.addEventListener("selectionchange", () => ++selectionChangeCount2);
     19    input1.setSelectionRange(1, 2);
     20    input1.setSelectionRange(2, 3);
     21    input2.setSelectionRange(1, 3);
     22    assert_equals(selectionChangeCount1, 0);
     23    assert_equals(selectionChangeCount2, 0);
     24    await new Promise(setTimeout);
     25    assert_equals(selectionChangeCount1, 1);
     26    assert_equals(selectionChangeCount2, 1);
     27  })();
     28 }, "selectionchange event on each input element fires independently");
     29 
     30 promise_test(() => {
     31  return (async function() {
     32    let selectionChangeCount1 = 0;
     33    let selectionChangeCount2 = 0;
     34    textarea1.addEventListener("selectionchange", () => ++selectionChangeCount1);
     35    textarea2.addEventListener("selectionchange", () => ++selectionChangeCount2);
     36    textarea1.setSelectionRange(1, 2);
     37    textarea1.setSelectionRange(2, 3);
     38    textarea2.setSelectionRange(1, 3);
     39    assert_equals(selectionChangeCount1, 0);
     40    assert_equals(selectionChangeCount2, 0);
     41    await new Promise(setTimeout);
     42    assert_equals(selectionChangeCount1, 1);
     43    assert_equals(selectionChangeCount2, 1);
     44  })();
     45 }, "selectionchange event on each textarea element fires independently");
     46 
     47 </script>