tor-browser

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

test_event_composed.html (1870B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Test for composed event in web components</title>
      5  <script type="text/javascript" src="head.js"></script>
      6  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      7  <script src="/tests/SimpleTest/EventUtils.js"></script>
      8  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
      9 </head>
     10 <body>
     11 <div id="host">
     12 <script>
     13 
     14 let host = document.getElementById("host");
     15 let root = host.attachShadow({ mode: "open" });
     16 
     17 function waitForEvent(element, eventName) {
     18  let promises = [];
     19  promises.push(new Promise((resolve) => {
     20    element.addEventListener(eventName, (event) => {
     21      is(event.composed, true, "check composed");
     22      resolve();
     23    }, { once:  true });
     24  }));
     25  promises.push(new Promise((resolve) => {
     26    root.addEventListener(eventName, (event) => {
     27      is(event.composed, true, "check composed");
     28      resolve();
     29    }, { once:  true });
     30  }));
     31  promises.push(new Promise((resolve) => {
     32    host.addEventListener(eventName, (event) => {
     33      is(event.composed, true, "check composed");
     34      resolve();
     35    }, { once:  true });
     36  }));
     37  return Promise.all(promises);
     38 }
     39 
     40 // https://bugzilla.mozilla.org/show_bug.cgi?id=1554965
     41 add_task(async function input_type_date() {
     42  let date = document.createElement("input");
     43  date.type = "date";
     44  date.value = "2020-01-01";
     45  root.appendChild(date);
     46 
     47  let promise = waitForEvent(date, "input");
     48  date.focus();
     49  synthesizeKey("KEY_ArrowDown");
     50 
     51  await promise;
     52 
     53  date.remove();
     54 });
     55 
     56 // https://bugzilla.mozilla.org/show_bug.cgi?id=1554965
     57 add_task(function input_type_time() {
     58  let time = document.createElement("input");
     59  time.type = "time";
     60  time.value = "10:30";
     61  root.appendChild(time);
     62 
     63  let promise = waitForEvent(time, "input");
     64  time.focus();
     65  synthesizeKey("KEY_ArrowDown");
     66 
     67  time.remove();
     68 });
     69 
     70 </script>
     71 </body>
     72 </html>