| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../http/tests/inspector/resources/inspector-test.js"></script> |
| <script> |
| function eventListenerJSONFilter(key, value) { |
| if (typeof value === "function") |
| return `<function ${value.name}>`; |
| return value; |
| } |
| |
| function stringify(object) { |
| return JSON.stringify(object, eventListenerJSONFilter, 2); |
| } |
| |
| function test() |
| { |
| function evaluateWithCommandLineAPI(expression) { |
| return new Promise((resolve, reject) => { |
| WI.runtimeManager.evaluateInInspectedWindow(expression, {objectGroup: "test", includeCommandLineAPI: true}, (object, wasThrown) => { |
| resolve(object); |
| }); |
| }); |
| } |
| |
| InspectorTest.debug(); |
| let suite = InspectorTest.createAsyncSuite("Console.CommandLineAPI.getEventListeners"); |
| |
| function addTestCase({name, expression}) { |
| suite.addTestCase({ |
| name, |
| async test() { |
| await evaluateWithCommandLineAPI(` |
| try { |
| TestPage.addResult(stringify(getEventListeners(${expression}))); |
| } catch (e) { |
| TestPage.addResult(e); |
| } |
| TestPage.log(""); |
| `); |
| } |
| }); |
| } |
| |
| addTestCase({ |
| name: "Console.CommandLineAPI.getEventListeners.NoArguments", |
| expression: ``, |
| }); |
| |
| addTestCase({ |
| name: "Console.CommandLineAPI.getEventListeners.Undefined", |
| expression: `undefined`, |
| }); |
| |
| addTestCase({ |
| name: "Console.CommandLineAPI.getEventListeners.Null", |
| expression: `null`, |
| }); |
| |
| addTestCase({ |
| name: "Console.CommandLineAPI.getEventListeners.String", |
| expression: `"test"`, |
| }); |
| |
| addTestCase({ |
| name: "Console.CommandLineAPI.getEventListeners.window", |
| expression: `window`, |
| }); |
| |
| addTestCase({ |
| name: "Console.CommandLineAPI.getEventListeners.NodeNoListeners", |
| expression: `document.createElement("p")`, |
| }); |
| |
| addTestCase({ |
| name: "Console.CommandLineAPI.getEventListeners.NodeWithListeners", |
| expression: `document.getElementById("target")`, |
| }); |
| |
| suite.runTestCasesAndFinish(); |
| } |
| </script> |
| </head> |
| <body onload="runTest()"> |
| <p>Test for CommandLineAPI getEventListeners.</p> |
| <div id="target"></div> |
| <script> |
| let target = document.getElementById("target"); |
| target.onclick = function onclickHandler() { console.log("click"); }; |
| target.addEventListener("hover", function hoverHandler() { console.log("hover"); }, {once: true, passive: true}); |
| target.addEventListener("click", function clickHandler() { console.log("click 2"); }, true); |
| target.addEventListener("fake", function fakeHandler() { console.log("fake"); }); |
| </script> |
| </body> |
| </html> |