| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/resources/testdriver.js"></script> |
| <script src="/resources/testdriver-vendor.js"></script> |
| </head> |
| <body> |
| <input type="number" id="number_input"> |
| <script> |
| promise_test(async function() { |
| const inputElement = document.getElementById("number_input"); |
| let events = []; |
| inputElement.addEventListener("beforeinput", () => { |
| events.push("beforeinput"); |
| }); |
| inputElement.addEventListener("input", () => { |
| events.push("input"); |
| }); |
| inputElement.addEventListener("change", () => { |
| events.push("change"); |
| }); |
| |
| inputElement.focus(); |
| |
| await new test_driver.send_keys(inputElement, "\uE013"); |
| assert_array_equals(events, ['beforeinput','input','change']); |
| }, "Number input should fire beforeinput event before the input and change event"); |
| </script> |
| </body> |
| </html> |