blob: 12fefa2db6311a4f085e8fcd55afb7bd6472a53a [file] [log] [blame]
<html>
<head>
<script src="../../http/tests/inspector/resources/protocol-test.js"></script>
<script src="resources/assert.js"></script>
<script>
function test()
{
InspectorProtocol.sendCommand("Debugger.enable", {});
InspectorProtocol.sendCommand("Debugger.setBreakpointsActive", {active: true});
InspectorProtocol.sendCommand("Debugger.setPauseOnExceptions", {state: "all"}, InspectorProtocol.checkForError);
InspectorProtocol.sendCommand("Debugger.setPauseOnAssertions", {enabled: true}, InspectorProtocol.checkForError);
var step = null;
var steps = [
{
message: "Should not pause on passing assert.",
evaluate: "assertTrue()",
pause: false,
},
{
message: "Should pause on failing assert.",
evaluate: "assertFalse()",
pause: true,
},
{
message: "Should not pause on passing assert.",
evaluate: "assertCondition(window)",
pause: false,
},
{
message: "Should pause on failing assert.",
evaluate: "assertCondition(window === null)",
pause: true,
},
{
message: "Should not pause on passing assert.",
evaluate: "assertConditionWithMessage(window, 'Should not happen')",
pause: false,
},
{
message: "Should pause on failing assert and include a message.",
evaluate: "assertConditionWithMessage(window === null, 'ASSERT message')",
pause: true,
},
];
InspectorProtocol.eventHandler["Debugger.paused"] = function(messageObject)
{
if (step.pause)
ProtocolTest.log("PASS: Paused!");
else
ProtocolTest.log("FAIL: Paused when unexpected");
InspectorProtocol.sendCommand("Debugger.resume", {}, runNextStep);
}
function runNextStep() {
step = steps.shift();
if (!step) {
ProtocolTest.completeTest();
return;
}
// Evalute the command inside a setTimeout so that we can hit exceptions and break.
// Otherwise, evaluating through RuntimeAgent will not trigger a pause.
// Likewise, if no pause is expected wait for a bit before continuing.
ProtocolTest.log(step.message);
InspectorProtocol.sendCommand("Runtime.evaluate", {expression: "setTimeout(function(){" + step.evaluate + "}, 0)"}, function(responseObject) {
InspectorProtocol.checkForError(responseObject);
if (!step.pause)
setTimeout(runNextStep, 20);
});
}
runNextStep();
}
</script>
</head>
<body onload="runTest()">
<p>Test that a failing console.assert will pause in the debugger with an optional message.</p>
</body>
</html>