tor-browser

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

selectionchange-bubble.html (1021B)


      1 <!DOCTYPE html>
      2 <meta charset="utf-8">
      3 <title>Test selectionchange events bubbling from text controls</title>
      4 <script src="/resources/testharness.js"></script>
      5 <script src="/resources/testharnessreport.js"></script>
      6 
      7 <input id="input" width="200" value="foo"><br>
      8 <textarea id="textarea" width="200">foo</textarea>
      9 
     10 <script>
     11  function untilEvent(element, eventName) {
     12    return new Promise(resolve => {
     13      element.addEventListener(eventName, resolve, { once: true });
     14    });
     15  }
     16 
     17  for (const element of [input, textarea]) {
     18    const name = element.localName;
     19    for (const focus of [false, true]) {
     20      let focused = focus ? " when focused" : "";
     21      let offset = focus ? 2 : 1;
     22      promise_test(async () => {
     23        if (focus) {
     24          element.focus();
     25        }
     26 
     27        element.setSelectionRange(offset, offset);
     28        const ev = await untilEvent(element, "selectionchange");
     29        assert_equals(ev.bubbles, true);
     30      }, `selectionchange bubbles from ${name}${focused}`);
     31    }
     32  }
     33 </script>