OLD | NEW |
(Empty) | |
| 1 (async function(testRunner) { |
| 2 let {page, session, dp} = await testRunner.startBlank('Tests that console mess
age from worker contains stack trace.'); |
| 3 |
| 4 var workerRequestId = 1; |
| 5 function sendCommandToWorker(method, params, workerId) { |
| 6 dp.Target.sendMessageToTarget({ |
| 7 targetId: workerId, |
| 8 message: JSON.stringify({ method: method, params: params, id: workerReques
tId++ }) |
| 9 }); |
| 10 } |
| 11 |
| 12 var waitForWorkers = 2; |
| 13 dp.Target.onAttachedToTarget(messageObject => { |
| 14 var workerId = messageObject['params']['targetInfo']['targetId']; |
| 15 testRunner.log('Worker created'); |
| 16 sendCommandToWorker('Runtime.enable', {}, workerId); |
| 17 if (!--waitForWorkers) |
| 18 session.evaluate('worker1.postMessage(239);worker2.postMessage(42);'); |
| 19 }); |
| 20 |
| 21 var workerTerminated = false; |
| 22 var messageReceived = false; |
| 23 dp.Target.onReceivedMessageFromTarget(messageObject => { |
| 24 var message = JSON.parse(messageObject['params']['message']); |
| 25 if (message['method'] === 'Runtime.exceptionThrown') { |
| 26 var callFrames = message.params.exceptionDetails.stackTrace ? message.para
ms.exceptionDetails.stackTrace.callFrames : []; |
| 27 testRunner.log(callFrames.length > 0 ? 'Message with stack trace received.
' : '[FAIL] Message contains empty stack trace'); |
| 28 messageReceived = true; |
| 29 if (messageReceived && workerTerminated) |
| 30 testRunner.completeTest(); |
| 31 } |
| 32 }); |
| 33 |
| 34 function onDetached(messageObject) { |
| 35 dp.Target.offDetachedFromTarget(onDetached); |
| 36 workerTerminated = true; |
| 37 if (messageReceived && workerTerminated) |
| 38 testRunner.completeTest(); |
| 39 } |
| 40 dp.Target.onDetachedFromTarget(onDetached); |
| 41 |
| 42 await dp.Target.setAutoAttach({autoAttach: true, waitForDebuggerOnStart: false
}); |
| 43 session.evaluate(` |
| 44 window.worker1 = new Worker('${testRunner.url('../resources/worker-with-thro
w.js')}'); |
| 45 window.worker1.onerror = function(e) { |
| 46 e.preventDefault(); |
| 47 worker1.terminate(); |
| 48 } |
| 49 window.worker2 = new Worker('${testRunner.url('../resources/worker-with-thro
w.js')}'); |
| 50 `); |
| 51 }) |
OLD | NEW |