dialog-keydown-preventDefault.html (1353B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Test cancel event with preventDefault on keydown event for dialog element</title> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <script src="/resources/testdriver.js"></script> 8 <script src="/resources/testdriver-vendor.js"></script> 9 <link rel="help" href="https://bugs.webkit.org/show_bug.cgi?id=227534"> 10 <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1322947"> 11 </head> 12 <body> 13 <p>Test cancel event with preventDefault on keydown event for dialog element</p> 14 <dialog> 15 <p>Hello World</p> 16 </dialog> 17 <script> 18 setup({ single_test: true }); 19 20 var hasCancelEventFired = false; 21 22 const dialog = document.querySelector("dialog"); 23 24 const verify = () => { 25 assert_false(hasCancelEventFired, "cancel should not be fired"); 26 assert_true(hasKeydownEventFired, "document level keydown event should be fired"); 27 done(); 28 }; 29 30 dialog.addEventListener("cancel", function(event) { 31 hasCancelEventFired = true; 32 }); 33 34 document.addEventListener("keydown", function(event) { 35 hasKeydownEventFired = true; 36 event.preventDefault(); 37 step_timeout(function() { 38 verify(); 39 }, 0); 40 }); 41 dialog.showModal(); 42 test_driver.send_keys(document.documentElement, "\uE00C"); // ESC key 43 </script> 44 </body> 45 </html>