| <!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> |