Index: third_party/WebKit/LayoutTests/inspector-protocol/timeline/timeline-dispatchEvent.js |
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/timeline/timeline-dispatchEvent.js b/third_party/WebKit/LayoutTests/inspector-protocol/timeline/timeline-dispatchEvent.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..890af8524718ca7e1ceea925d5d9dc466c1ad9da |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/inspector-protocol/timeline/timeline-dispatchEvent.js |
@@ -0,0 +1,47 @@ |
+(async function(testRunner) { |
+ let {page, session, dp} = await testRunner.startHTML(` |
+ <div id='my-div'></div> |
+ `, ''); |
+ |
+ 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'))(testRunner, session); |
+ await session.evaluate(performAction.toString()); |
+ tracingHelper.invokeAsyncWithTracing('performAction', finish); |
+ |
+ function finish(devtoolsEvents) { |
+ function windowEventFilter(type, e) { |
+ return e.name === 'EventDispatch' && e.args.data.type === type; |
+ }; |
+ |
+ var windowEventNames = [ 'click', 'beforeunload', 'unload', 'load' ]; |
+ for (var i = 0; i < windowEventNames.length; i++) { |
+ var eventName = windowEventNames[i]; |
+ var events = devtoolsEvents.filter(windowEventFilter.bind(this, eventName)); |
+ if (events.length >= 1) |
+ testRunner.log('SUCCESS: found ' + eventName + ' event'); |
+ else |
+ fail(eventName + ' event is missing', devtoolsEvents); |
+ } |
+ |
+ testRunner.completeTest(); |
+ } |
+ |
+ function fail(message, devtoolsEvents) { |
+ var formattedEvents = devtoolsEvents.map(function(e) { |
+ return e.name + (e.args.data ? '(' + e.args.data.type + ')' : ''); |
+ }); |
+ testRunner.log('FAIL: ' + message + ' devtools.timeline events: ' + JSON.stringify(formattedEvents, null, 2)); |
+ } |
+}) |