test_event_composed.html (1870B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Test for composed event in web components</title> 5 <script type="text/javascript" src="head.js"></script> 6 <script src="/tests/SimpleTest/SimpleTest.js"></script> 7 <script src="/tests/SimpleTest/EventUtils.js"></script> 8 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 9 </head> 10 <body> 11 <div id="host"> 12 <script> 13 14 let host = document.getElementById("host"); 15 let root = host.attachShadow({ mode: "open" }); 16 17 function waitForEvent(element, eventName) { 18 let promises = []; 19 promises.push(new Promise((resolve) => { 20 element.addEventListener(eventName, (event) => { 21 is(event.composed, true, "check composed"); 22 resolve(); 23 }, { once: true }); 24 })); 25 promises.push(new Promise((resolve) => { 26 root.addEventListener(eventName, (event) => { 27 is(event.composed, true, "check composed"); 28 resolve(); 29 }, { once: true }); 30 })); 31 promises.push(new Promise((resolve) => { 32 host.addEventListener(eventName, (event) => { 33 is(event.composed, true, "check composed"); 34 resolve(); 35 }, { once: true }); 36 })); 37 return Promise.all(promises); 38 } 39 40 // https://bugzilla.mozilla.org/show_bug.cgi?id=1554965 41 add_task(async function input_type_date() { 42 let date = document.createElement("input"); 43 date.type = "date"; 44 date.value = "2020-01-01"; 45 root.appendChild(date); 46 47 let promise = waitForEvent(date, "input"); 48 date.focus(); 49 synthesizeKey("KEY_ArrowDown"); 50 51 await promise; 52 53 date.remove(); 54 }); 55 56 // https://bugzilla.mozilla.org/show_bug.cgi?id=1554965 57 add_task(function input_type_time() { 58 let time = document.createElement("input"); 59 time.type = "time"; 60 time.value = "10:30"; 61 root.appendChild(time); 62 63 let promise = waitForEvent(time, "input"); 64 time.focus(); 65 synthesizeKey("KEY_ArrowDown"); 66 67 time.remove(); 68 }); 69 70 </script> 71 </body> 72 </html>