button-activate-keyup-prevented.html (1363B)
1 <!doctype html> 2 <meta charset="utf-8"> 3 <title>Button activation submits on keyup, but not if keydown is defaultPrevented</title> 4 <link rel=help href="https://bugzilla.mozilla.org/show_bug.cgi?id=1481400"> 5 <link rel=author href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> 6 <link rel=author href="https://mozilla.org" title="Mozilla"> 7 <script src="/resources/testharness.js"></script> 8 <script src="/resources/testharnessreport.js"></script> 9 <script src="/resources/testdriver.js"></script> 10 <script src="/resources/testdriver-vendor.js"></script> 11 <button>The button</button> 12 <script> 13 let button = document.querySelector("button"); 14 promise_test(async t => { 15 button.focus(); 16 assert_equals(document.activeElement, button, "Button should be focused"); 17 let clickPromise = new Promise(resolve => { 18 button.addEventListener("click", resolve, { once: true }); 19 }); 20 21 await test_driver.send_keys(button, " "); 22 23 await clickPromise; 24 25 assert_true(true, "Button should have activated"); 26 27 document.addEventListener("keydown", t.step_func(function(e) { 28 e.preventDefault(); 29 })); 30 31 button.addEventListener("click", t.unreached_func("button got incorrectly activated")); 32 33 await test_driver.send_keys(button, " "); 34 35 await new Promise(resolve => t.step_timeout(resolve, 0)); 36 assert_true(true, "Button should not have activated"); 37 }); 38 </script>