Index: third_party/WebKit/LayoutTests/inspector-protocol/dom/dom-getEventListeners.js |
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/dom/dom-getEventListeners.js b/third_party/WebKit/LayoutTests/inspector-protocol/dom/dom-getEventListeners.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..77d57effa1527780dcd57dbaf062da37692725ab |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/inspector-protocol/dom/dom-getEventListeners.js |
@@ -0,0 +1,53 @@ |
+(async function(testRunner) { |
+ var {page, session, dp} = await testRunner.startHTML(` |
+ <template id='shadow-template' onclick='clickTemplate'> |
+ <style> |
+ :host { |
+ color: red; |
+ } |
+ </style> |
+ <div></div><h1>Hi from a template!</h1></div> |
+ </template> |
+ </head> |
+ <body class='body-class' onload='runTest()'> |
+ <div id='A'> A |
+ <div id='B'> B |
+ <div id='C'> C |
+ </div> |
+ </div> |
+ </div> |
+ |
+ <iframe src='../dom/resources/iframe-with-listener.html' width='400' height='200'></iframe> |
+ <div id='shadow-host'></div> |
+ </body> |
+ `, ''); |
+ |
+ await session.evaluate(() => { |
+ var host = document.querySelector('#shadow-host').createShadowRoot(); |
+ var template = document.querySelector('#shadow-template'); |
+ host.appendChild(template.content); |
+ template.remove(); |
+ document.getElementById('A').addEventListener('listenerA', () => {}); |
+ document.getElementById('B').addEventListener('listenerB', () => {}); |
+ document.getElementById('C').addEventListener('listenerC', () => {}); |
+ document.addEventListener('documentListener', () => {}); |
+ }); |
+ |
+ dp.DOM.enable(); |
+ dp.Runtime.enable(); |
+ var result = await dp.Runtime.evaluate({expression: 'document'}); |
+ var objectId = result.result.result.objectId; |
+ |
+ await dumpListeners(objectId); |
+ await dumpListeners(objectId, 1); |
+ await dumpListeners(objectId, 4); |
+ await dumpListeners(objectId, -1); |
+ await dumpListeners(objectId, -1, true); |
+ testRunner.completeTest(); |
+ |
+ async function dumpListeners(objectId, depth, pierce) { |
+ testRunner.log(`Fetching listeners for depth = ${depth} and pierce = ${pierce}`); |
+ var {result} = await dp.DOMDebugger.getEventListeners({objectId, depth, pierce}); |
+ testRunner.logMessage(result); |
+ } |
+}) |