77 lines
2.8 KiB
HTML
77 lines
2.8 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
|
|
<script src="resources/event-breakpoint-utilities.js"></script>
|
|
<script>
|
|
function handleLoad(event) {
|
|
TestPage.dispatchEventToFrontend("TestPageLoad");
|
|
|
|
runTest();
|
|
}
|
|
|
|
function test() {
|
|
let suite = InspectorTest.createAsyncSuite("DOMDebugger.EventWithNavigation");
|
|
|
|
suite.addTestCase({
|
|
name: `DOMDebugger.EventWithNavigation.AddBreakpoint`,
|
|
description: "Check that a breakpoint is preserved over navigation.",
|
|
test(resolve, reject) {
|
|
let paused = false;
|
|
|
|
let listener = WI.debuggerManager.singleFireEventListener(WI.DebuggerManager.Event.Paused, (event) => {
|
|
paused = true;
|
|
|
|
let targetData = WI.debuggerManager.dataForTarget(WI.debuggerManager.activeCallFrame.target);
|
|
InspectorTest.expectEqual(targetData.pauseReason, WI.DebuggerManager.PauseReason.Listener, "Pause reason should be Listener.");
|
|
InspectorTest.expectEqual(targetData.pauseData.eventName, "load", "Pause data eventName should be \"load\".");
|
|
|
|
WI.debuggerManager.resume()
|
|
.catch((reason) => {
|
|
InspectorTest.fail(reason);
|
|
resolve();
|
|
});
|
|
});
|
|
|
|
InspectorTest.singleFireEventListener("TestPageLoad", (event) => {
|
|
if (!paused) {
|
|
WI.debuggerManager.removeEventListener(WI.DebuggerManager.Event.Paused, listener);
|
|
|
|
InspectorTest.fail("Should pause before \"load\" event handler is run");
|
|
}
|
|
|
|
resolve();
|
|
});
|
|
|
|
InspectorTest.log("Adding \"load\" Event Breakpoint...");
|
|
|
|
let breakpoint = new WI.EventBreakpoint(WI.EventBreakpoint.Type.Listener, {eventName: "load"});
|
|
|
|
WI.domDebuggerManager.awaitEvent(WI.DOMDebuggerManager.Event.EventBreakpointAdded)
|
|
.then((event) => {
|
|
InspectorTest.assert(event.data.breakpoint.type === WI.EventBreakpoint.Type.Listener, "Breakpoint should be for expected type.");
|
|
InspectorTest.assert(event.data.breakpoint.eventName === "load", "Breakpoint should be for expected event name.");
|
|
|
|
InspectorTest.log("Reloading WebInspector...");
|
|
return InspectorTest.reloadPage();
|
|
})
|
|
.catch(reject);
|
|
|
|
WI.domDebuggerManager.addEventBreakpoint(breakpoint);
|
|
},
|
|
teardown: InspectorTest.EventBreakpoint.teardown,
|
|
});
|
|
|
|
suite.runTestCasesAndFinish();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<p>Tests for Event Listener breakpoints.</p>
|
|
<div id="x"></div>
|
|
<script>
|
|
window.addEventListener("load", handleLoad);
|
|
</script>
|
|
</body>
|
|
</html>
|