blob: b8c63d6027bf7c7c1cf2dd61224ea8a37fdc4d01 [file] [log] [blame]
(async function(testRunner) {
var {page, session, dp} = await testRunner.startBlank(
'Tests async stacks for load and error events');
let debuggerId = (await dp.Debugger.enable()).result.debuggerId;
let debuggers = new Map([[debuggerId, dp.Debugger]]);
dp.Debugger.setAsyncCallStackDepth({maxDepth: 32});
testRunner.log('Test load event..');
await dp.Runtime.evaluate({
expression: `
let script = document.createElement('script');
script.src = '${testRunner.url('resources/simple.js')}';
script.addEventListener('load', onScriptLoad);
document.body.appendChild(script);
function onScriptLoad() {
debugger;
}
//# sourceURL=test.js
`
});
let {params: {callFrames, asyncStackTrace, asyncStackTraceId}} =
await dp.Debugger.oncePaused();
await testRunner.logStackTrace(
debuggers,
{callFrames, parent: asyncStackTrace, parentId: asyncStackTraceId},
debuggerId);
dp.Debugger.resume();
testRunner.log('Test error event..');
await dp.Runtime.evaluate({
expression: `
script = document.createElement('script');
script.src = '${testRunner.url('resources/should-be-no-script.js')}';
script.addEventListener('error', onScriptError);
document.body.appendChild(script);
function onScriptError() {
debugger;
}
//# sourceURL=test.js
`
});
({params: {callFrames, asyncStackTrace, asyncStackTraceId}} =
await dp.Debugger.oncePaused());
await testRunner.logStackTrace(
debuggers,
{callFrames, parent: asyncStackTrace, parentId: asyncStackTraceId},
debuggerId);
dp.Debugger.resume();
testRunner.completeTest();
})