| <html> |
| <head> |
| <script src="../../http/tests/inspector/resources/protocol-test.js"></script> |
| <script src="resources/breakpoint.js"></script> |
| <script> |
| function test() |
| { |
| InspectorProtocol.sendCommand("Debugger.enable", {}); |
| InspectorProtocol.sendCommand("Debugger.setBreakpointsActive", {active: true}); |
| |
| var inBreakpoint = false; |
| var breakpointTriggered = 0; |
| |
| InspectorProtocol.eventHandler["Debugger.scriptParsed"] = function(messageObject) |
| { |
| if (/resources\/breakpoint\.js$/.test(messageObject.params.url)) { |
| ProtocolTest.log("Found breakpoint.js"); |
| var scriptIdentifier = messageObject.params.scriptId; |
| var location = {scriptId: scriptIdentifier, lineNumber: 8, columnNumber: 0}; |
| var options = {condition: "(a + b) > 10"}; |
| InspectorProtocol.sendCommand("Debugger.setBreakpoint", {location: location, options: options}, function(responseObject) { |
| InspectorProtocol.checkForError(responseObject); |
| ProtocolTest.log("Running breakpointWithCondition multiple times"); |
| InspectorProtocol.sendCommand("Runtime.evaluate", {expression: "breakpointWithCondition(1, 2)"}); |
| InspectorProtocol.sendCommand("Runtime.evaluate", {expression: "breakpointWithCondition(5, 5)"}); |
| InspectorProtocol.sendCommand("Runtime.evaluate", {expression: "breakpointWithCondition(7, 4)"}); |
| }); |
| } |
| } |
| |
| InspectorProtocol.eventHandler["Debugger.paused"] = function(messageObject) |
| { |
| ProtocolTest.log("Hit Breakpoint!"); |
| inBreakpoint = true; |
| ++breakpointTriggered; |
| |
| var callFrameIdentifier = messageObject.params.callFrames[0].callFrameId; |
| if (breakpointTriggered === 1) { |
| InspectorProtocol.sendCommand("Debugger.evaluateOnCallFrame", {callFrameId: callFrameIdentifier, expression: "a"}, function(messageObject) { |
| ProtocolTest.log("Evaluted value of `a` (expecting number 7) was: " + JSON.stringify(messageObject.result.result)); |
| InspectorProtocol.sendCommand("Debugger.evaluateOnCallFrame", {callFrameId: callFrameIdentifier, expression: "b"}, function(messageObject) { |
| ProtocolTest.log("Evaluted value of `b` (expecting number 4) was: " + JSON.stringify(messageObject.result.result)); |
| InspectorProtocol.sendCommand("Debugger.resume", {}); |
| }); |
| }); |
| } else if (breakpointTriggered === 2) { |
| InspectorProtocol.sendCommand("Debugger.evaluateOnCallFrame", {callFrameId: callFrameIdentifier, expression: "a"}, function(messageObject) { |
| ProtocolTest.log("Evaluted value of `a` (expecting number 4) was: " + JSON.stringify(messageObject.result.result)); |
| InspectorProtocol.sendCommand("Debugger.evaluateOnCallFrame", {callFrameId: callFrameIdentifier, expression: "b"}, function(messageObject) { |
| ProtocolTest.log("Evaluted value of `b` (expecting number 7) was: " + JSON.stringify(messageObject.result.result)); |
| ProtocolTest.log("PASS: hit breakpoints with expected values"); |
| ProtocolTest.completeTest(); |
| }); |
| }); |
| } else { |
| ProtocolTest.log("FAIL: hit too many breakpoints."); |
| ProtocolTest.completeTest(); |
| } |
| } |
| |
| InspectorProtocol.eventHandler["Debugger.resumed"] = function(messageObject) |
| { |
| ProtocolTest.log("Resumed, running breakpointWithCondition multiple times again"); |
| inBreakpoint = false; |
| |
| InspectorProtocol.sendCommand("Runtime.evaluate", {expression: "breakpointWithCondition(9, 0)"}); |
| InspectorProtocol.sendCommand("Runtime.evaluate", {expression: "breakpointWithCondition(12, -4)"}); |
| InspectorProtocol.sendCommand("Runtime.evaluate", {expression: "breakpointWithCondition(4, 7)"}, function() { |
| setTimeout(function() { |
| if (!inBreakpoint) { |
| ProtocolTest.log("FAIL: Did not hit conditional breakpoint the second time"); |
| ProtocolTest.completeTest(); |
| } |
| }, 100); |
| }); |
| } |
| } |
| </script> |
| </head> |
| <body onload="runTest()"> |
| <p>Debugger.setBreakpoint options.condition</p> |
| </body> |
| </html> |