input-events-arrow-key-on-number-input.html (936B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <script src="/resources/testdriver.js"></script> 7 <script src="/resources/testdriver-vendor.js"></script> 8 </head> 9 <body> 10 <input type="number" id="number_input"> 11 <script> 12 promise_test(async function() { 13 const inputElement = document.getElementById("number_input"); 14 let events = []; 15 inputElement.addEventListener("beforeinput", () => { 16 events.push("beforeinput"); 17 }); 18 inputElement.addEventListener("input", () => { 19 events.push("input"); 20 }); 21 inputElement.addEventListener("change", () => { 22 events.push("change"); 23 }); 24 25 inputElement.focus(); 26 27 await new test_driver.send_keys(inputElement, "\uE013"); 28 assert_array_equals(events, ['beforeinput','input','change']); 29 }, "Number input should fire beforeinput event before the input and change event"); 30 </script> 31 </body> 32 </html>