tor-browser

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

keyboard-click-event.html (2191B)


      1 <script src="/resources/testharness.js"></script>
      2 <script src="/resources/testharnessreport.js"></script>
      3 <script src="/resources/testdriver.js"></script>
      4 <script src="/resources/testdriver-actions.js"></script>
      5 <script src="/resources/testdriver-vendor.js"></script>
      6 
      7 <p>Tests that a button pressed by using Space or Enter will fire only the click event</p>
      8 <button id="button">Click Me by pressing Enter or Space</button>
      9 <input id="inputbutton" type="button" value="Click me by pressing Enter or Space">
     10 
     11 <script>
     12 let button = document.getElementById("button");
     13 let inputbutton = document.getElementById("inputbutton");
     14 let radiobutton = document.getElementById("radiobutton");
     15 let elementList = [button, inputbutton];
     16 let eventLog = [];
     17 const enterKey = '\uE006';
     18 const spaceKey = ' ';
     19 let keys = [spaceKey, enterKey];
     20 const eventList = ["pointerdown", "pointerup", "mousedown", "mouseup", "click"];
     21 elementList.forEach((el)=>{eventList.forEach((ev)=>el.addEventListener(ev, (e)=>{
     22  eventLog.push(`${ev}_${el.id}`);
     23  if(ev === "click" && currentTest){
     24    currentTest.step(()=>{
     25      if(e instanceof PointerEvent){
     26        // We want the test to run on all browsers even if click is not a PointerEvent.
     27        assert_equals(e.pointerId, -1, "Click's pointerId has reserved value");
     28        assert_equals(e.pointerType, "", "Click's pointerType has default value");
     29      }
     30    });
     31  }
     32 }));});
     33 let currentTest;
     34 let testElements = [button, inputbutton];
     35 let keyNameMap = new Map([[spaceKey, "space"], [enterKey, "enter"]]);
     36 keys.forEach((key)=>testElements.forEach((el)=>promise_test((test)=> new Promise(async (resolve,reject)=>{
     37  currentTest = test;
     38  eventLog = [];
     39  var eventWatcher = new EventWatcher(test, el, ['click']);
     40  let waitForClick = eventWatcher.wait_for('click');
     41  el.focus();
     42  let actions = new test_driver.Actions();
     43  await test_driver
     44    .send_keys(el, key);
     45  await waitForClick;
     46 
     47  assert_array_equals(eventLog, [`click_${el.id}`], "The Keyboard generated click only sends the click event.");
     48  resolve();
     49 }), `Test that the Keyboard generated click does not fire pointer or mouse events for ${el.id} when pressing ${keyNameMap.get(key)} key`)));
     50 </script>