// Copyright 2019 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. const { contextGroup, Protocol } = InspectorTest.start( `Tests for calling setBreakpoint with urlRegex`); (async function test(){ await Protocol.Debugger.enable(); Protocol.Runtime.evaluate({expression: ` function test() { return 42; } //# sourceURL=some-kind-of-test.js`}); await Protocol.Debugger.onceScriptParsed(); InspectorTest.runAsyncTestSuite([ async function testSetBreakpointByUrlRegex() { const result = await Protocol.Debugger.setBreakpointByUrl({ lineNumber: 2, urlRegex: '.*of-test.js' }); InspectorTest.logMessage(result.result.locations); await expectBreakInEval('test()'); await Protocol.Debugger.removeBreakpoint({ breakpointId: result.result.breakpointId }); await expectNoBreakInEval('test()'); }, async function testSetBreakpointByUrlWithConditions() { // Test Condition false let result = await Protocol.Debugger.setBreakpointByUrl({ lineNumber: 2, urlRegex: '.*of-test.js', condition: 'false' }); InspectorTest.logMessage(result.result.locations); await expectNoBreakInEval('test()'); await Protocol.Debugger.removeBreakpoint({ breakpointId: result.result.breakpointId }); // Test condition true result = await Protocol.Debugger.setBreakpointByUrl({ lineNumber: 2, urlRegex: '.*of-test.js', condition: 'true' }); InspectorTest.logMessage(result.result.locations); await expectBreakInEval('test()'); await Protocol.Debugger.removeBreakpoint({ breakpointId: result.result.breakpointId }); }, ]); // Function that will evaluate an expression and return once completed. // Used to validate that breakpoint is not hit within the evaluated expression. async function expectNoBreakInEval(expression) { await Protocol.Runtime.evaluate({expression}); InspectorTest.log(`Successfully completed eval of: '${expression}'`); } // Function that will evaluate an expression and return once a paused event is received // and the debugger is resumed. // Used to validate that breakpoint is hit within the evaluated expression. async function expectBreakInEval(expression) { Protocol.Runtime.evaluate({expression}); await Protocol.Debugger.oncePaused(); InspectorTest.log(`Successfully paused during eval of: '${expression}'`); await Protocol.Debugger.resume(); } })();