media-element-event-handler-attributes.html (1238B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>Test setting EventHandler attributes</title> 4 <link rel="help" href="https://w3c.github.io/encrypted-media/#attributes-3"> 5 6 <script src="/resources/testharness.js"></script> 7 <script src="/resources/testharnessreport.js"></script> 8 9 <body> 10 <audio id="testElement" 11 onencrypted="window.onencryptedHandlerSetFromParserWasFired()" 12 onwaitingforkey="window.onwaitingforkeyHandlerSetFromParserWasFired()"> 13 </audio> 14 <script> 15 ["encrypted", "waitingforkey"].forEach(eventName => { 16 promise_test(() => { 17 return new Promise(resolve => { 18 window[`on${eventName}HandlerSetFromParserWasFired`] = resolve; 19 testElement.dispatchEvent(new Event(eventName)); 20 }); 21 }, `on${eventName} handler set from parser`); 22 23 promise_test(() => { 24 const el = document.createElement("audio"); 25 el.setAttribute(`on${eventName}`, `window.on${eventName}HandlerSetViaSetAttributeWasFired()`); 26 document.body.append(el); 27 28 return new Promise(resolve => { 29 window[`on${eventName}HandlerSetViaSetAttributeWasFired`] = resolve; 30 el.dispatchEvent(new Event(eventName)); 31 }); 32 }, `on${eventName} handler set via setAttribute()`); 33 }); 34 </script>