Index: third_party/WebKit/LayoutTests/inspector-protocol/page/javascriptDialogEvents.js |
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/page/javascriptDialogEvents.js b/third_party/WebKit/LayoutTests/inspector-protocol/page/javascriptDialogEvents.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..67902583c8ee3c866a459c2cf63a2c7d7ba26e89 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/inspector-protocol/page/javascriptDialogEvents.js |
@@ -0,0 +1,35 @@ |
+(async function(testRunner) { |
+ let {page, session, dp} = await testRunner.startBlank(''); |
+ |
+ await session.evaluate(` |
+ testRunner.setShouldStayOnPageAfterHandlingBeforeUnload(true); |
+ |
+ // JavaScript onbeforeunload dialogs require a user gesture. |
+ if (window.eventSender) { |
+ eventSender.mouseMoveTo(5, 5); |
+ eventSender.mouseDown(); |
+ eventSender.mouseUp(); |
+ } |
+ |
+ function onBeforeUnload() |
+ { |
+ window.removeEventListener('beforeunload', onBeforeUnload); |
+ return 'beforeunload in javascriptDialogEvents'; |
+ } |
+ window.onbeforeunload = onBeforeUnload; |
+ `); |
+ |
+ dp.Page.onJavascriptDialogOpening(event => { |
+ testRunner.log('Opening dialog: type=' + event.params.type + '; message=' + event.params.message); |
+ }); |
+ dp.Page.onJavascriptDialogClosed(event => { |
+ testRunner.log('Closed dialog: result=' + event.params.result); |
+ }); |
+ |
+ dp.Page.enable(); |
+ dp.Page.navigate({url: 'http://nosuchurl' }); |
+ await session.evaluate('alert("alert")'); |
+ await session.evaluate('confirm("confirm")'); |
+ await session.evaluate('prompt("prompt")'); |
+ testRunner.completeTest(); |
+}) |