68 lines
2.3 KiB
HTML
68 lines
2.3 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
|
|
<script src="../../http/tests/inspector/debugger/debugger-test.js"></script>
|
|
<script src="resources/script-for-breakpoint-actions.js"></script>
|
|
<script>
|
|
function test()
|
|
{
|
|
let breakpointPromise = new WI.WrappedPromise;
|
|
WI.Frame.addEventListener(WI.Frame.Event.MainResourceDidChange, function() {
|
|
InspectorTest.startTracingBreakpoints();
|
|
InspectorTest.startTracingProbes();
|
|
|
|
var currentTicks = 0;
|
|
const expectedTicks = 2;
|
|
|
|
function incrementTick(event)
|
|
{
|
|
InspectorTest.log("Hit test checkpoint event #" + currentTicks + " with type: " + event.type);
|
|
if (++currentTicks === expectedTicks)
|
|
InspectorTest.completeTest();
|
|
}
|
|
|
|
WI.Probe.addEventListener(WI.Probe.Event.SampleAdded, incrementTick);
|
|
|
|
WI.debuggerManager.addEventListener(WI.DebuggerManager.Event.ScriptAdded, function(event) {
|
|
|
|
var scriptObject = event.data.script;
|
|
|
|
if (!/script\-for\-breakpoint\-actions\.js$/.test(scriptObject.url))
|
|
return;
|
|
|
|
var location = scriptObject.createSourceCodeLocation(4, 0);
|
|
// Create the breakpoint and its actions before sending anything to the backend.
|
|
var breakpoint = new WI.JavaScriptBreakpoint(location);
|
|
breakpoint.autoContinue = true;
|
|
for (var i of [0, 1])
|
|
breakpoint.addAction(new WI.BreakpointAction(WI.BreakpointAction.Type.Probe, {data: "a"}));
|
|
|
|
WI.debuggerManager.addBreakpoint(breakpoint);
|
|
|
|
breakpoint.addEventListener(WI.JavaScriptBreakpoint.Event.ResolvedStateDidChange, function() {
|
|
InspectorTest.expectThat(breakpoint.resolved, "Breakpoint should be resolved.");
|
|
});
|
|
|
|
|
|
breakpointPromise.resolve();
|
|
});
|
|
});
|
|
|
|
let reloadPromise = InspectorTest.awaitEvent(FrontendTestHarness.Event.TestPageDidLoad);
|
|
InspectorTest.reloadPage();
|
|
Promise.all([
|
|
reloadPromise,
|
|
breakpointPromise.promise
|
|
])
|
|
.then(() => {
|
|
InspectorTest.evaluateInPage("breakpointActions(12, {x:1,y:2})");
|
|
});
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<p>Testing that the probe manager properly handles addition and removal of related probes.</p>
|
|
</body>
|
|
</html>
|