blob: 8b60e39de69a9c6541a60d1d0a59751ade6fc81c [file] [log] [blame]
<html>
<head>
<script src="../../http/tests/inspector/inspector-test.js"></script>
<script src="../../http/tests/inspector/debugger-test.js"></script>
<script>
function f1()
{
var a=0;var b=1;var c=3;var d=4;var e=5;
var f=0;
return 0;
}
var test = function()
{
WebInspector.breakpointManager._storage._breakpoints = {};
var panel = WebInspector.panels.scripts;
var sourceFrame;
InspectorTest.runDebuggerTestSuite([
function testBreakpointsInOriginalAndFormattedSource(next)
{
InspectorTest.showScriptSource("script-formatter-breakpoints.html", didShowScriptSource);
function didShowScriptSource(frame)
{
sourceFrame = frame;
InspectorTest.setBreakpoint(sourceFrame, 10, "", true);
InspectorTest.waitUntilPaused(pausedInF1);
InspectorTest.evaluateInPageWithTimeout("f1()");
}
function pausedInF1(callFrames)
{
dumpBreakpointSidebarPane("while paused in raw");
InspectorTest.resumeExecution(resumed);
}
function resumed()
{
sourceFrame._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.FormattedChanged, didFormatPage, this);
sourceFrame._uiSourceCode.setFormatted(true);
}
function didFormatPage()
{
sourceFrame._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.FormattedChanged, didFormatPage, this);
// There should be a breakpoint in f1 although script is pretty-printed.
InspectorTest.waitUntilPaused(pausedInF1Again);
InspectorTest.evaluateInPageWithTimeout("f1()");
}
function pausedInF1Again(callFrames)
{
dumpBreakpointSidebarPane("while paused in pretty printed");
sourceFrame._uiSourceCode.setFormatted(false);
dumpBreakpointSidebarPane("while paused in raw");
InspectorTest.removeBreakpoint(sourceFrame, 10);
InspectorTest.resumeExecution(next);
}
},
function testBreakpointSetInOriginalAndRemovedInFormatted(next)
{
InspectorTest.showScriptSource("script-formatter-breakpoints.html", didShowScriptSource);
function didShowScriptSource(frame)
{
sourceFrame = frame;
InspectorTest.addResult("Adding breakpoint.");
InspectorTest.addSniffer(WebInspector.BreakpointManager.Breakpoint.prototype, "_addResolvedLocation", breakpointResolved);
InspectorTest.setBreakpoint(sourceFrame, 10, "", true);
}
function breakpointResolved()
{
InspectorTest.addSniffer(WebInspector.UISourceCode.prototype, "updateLiveLocations", didFormatPage);
InspectorTest.addResult("Formatting.");
sourceFrame._uiSourceCode.setFormatted(true);
}
function didFormatPage()
{
InspectorTest.addResult("Removing breakpoint.");
InspectorTest.removeBreakpoint(sourceFrame, 17);
InspectorTest.addResult("Unformatting.");
sourceFrame._uiSourceCode.setFormatted(false);
var breakpoints = WebInspector.breakpointManager._storage._setting.get();
InspectorTest.assertEquals(breakpoints.length, 0, "There should not be any breakpoints in the storage.");
next();
}
}
]);
function dumpBreakpointSidebarPane(title)
{
var paneElement = WebInspector.panels.scripts.sidebarPanes.jsBreakpoints.listElement
InspectorTest.addResult("Breakpoint sidebar pane " + title);
InspectorTest.addResult(InspectorTest.textContentWithLineBreaks(paneElement));
}
}
</script>
</head>
<body onload="runTest()">
<p>Tests the script formatting is working fine with breakpoints.
</p>
</body>
</html>