| (async function(testRunner) { |
| testRunner.log('Tests that multiple sessions receive log entries concurrently.'); |
| var page = await testRunner.createPage(); |
| var session1 = await page.createSession(); |
| var session2 = await page.createSession(); |
| |
| var messages1 = []; |
| session1.protocol.Log.onEntryAdded(event => messages1.push(event)); |
| |
| var messages2 = []; |
| session2.protocol.Log.onEntryAdded(event => messages2.push(event)); |
| |
| function dumpMessages() { |
| for (var message of messages1) { |
| testRunner.log('From session1:'); |
| testRunner.log(message); |
| } |
| messages1 = []; |
| for (var message of messages2) { |
| testRunner.log('From session2:'); |
| testRunner.log(message); |
| } |
| messages2 = []; |
| } |
| |
| testRunner.log('Enabling logging in session1'); |
| session1.protocol.Log.enable(); |
| session1.protocol.Log.startViolationsReport({config: [{name: 'discouragedAPIUse', threshold: -1}]}); |
| testRunner.log('Triggering violation'); |
| await session1.evaluate(`document.body.addEventListener('DOMSubtreeModified', () => {})`); |
| dumpMessages(); |
| |
| testRunner.log('Enabling logging in session2'); |
| session2.protocol.Log.enable(); |
| session2.protocol.Log.startViolationsReport({config: [{name: 'discouragedAPIUse', threshold: -1}]}); |
| testRunner.log('Triggering violation'); |
| await session1.evaluate(`document.body.addEventListener('DOMSubtreeModified', () => {})`); |
| dumpMessages(); |
| |
| testRunner.log('Disabling logging in session1'); |
| session1.protocol.Log.disable(); |
| testRunner.log('Triggering violation'); |
| await session1.evaluate(`document.body.addEventListener('DOMSubtreeModified', () => {})`); |
| dumpMessages(); |
| |
| testRunner.log('Disabling logging in session2'); |
| session2.protocol.Log.disable(); |
| testRunner.log('Triggering violation'); |
| await session1.evaluate(`document.body.addEventListener('DOMSubtreeModified', () => {})`); |
| dumpMessages(); |
| |
| testRunner.completeTest(); |
| }) |