| (async function(testRunner) { |
| var {page, session, dp} = await testRunner.startHTML(` |
| <div id='my-div'></div> |
| `, 'Tests trace events for event dispatching.'); |
| |
| function performAction() { |
| var div = document.querySelector('#my-div'); |
| div.addEventListener('click', function(e) { }, false); |
| div.click(); |
| |
| var iframe = document.createElement('iframe'); |
| div.appendChild(iframe); |
| return new Promise(resolve => { |
| iframe.onload = resolve; |
| iframe.src = 'blank.html'; |
| }); |
| } |
| |
| var TracingHelper = await testRunner.loadScript('../resources/tracing-test.js'); |
| var tracingHelper = new TracingHelper(testRunner, session); |
| await tracingHelper.invokeAsyncWithTracing(performAction); |
| |
| var windowEventNames = [ 'click', 'beforeunload', 'unload', 'load' ]; |
| for (var eventName of windowEventNames) { |
| var events = tracingHelper.filterEvents(e => e.name === 'EventDispatch' && e.args.data.type === eventName); |
| if (events.length >= 1) |
| testRunner.log('SUCCESS: found ' + eventName + ' event'); |
| else |
| testRunner.log('FAIL: ' + eventName + ' event is missing; devtools.timeline events: ' + tracingHelper.formattedEvents()); |
| } |
| |
| testRunner.completeTest(); |
| }) |