83 lines
2.8 KiB
HTML
83 lines
2.8 KiB
HTML
<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>
|