chromium/third_party/blink/web_tests/fast/events/before-unload-reloads.html

<script>
window.onload = function ()
{
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.setShouldStayOnPageAfterHandlingBeforeUnload(true);
        testRunner.waitUntilDone();
    }
    // JavaScript onbeforeunload dialogs require a user gesture.
    if (window.eventSender) {
        eventSender.mouseMoveTo(5, 5);
        eventSender.mouseDown();
        eventSender.mouseUp();
    }
    if (sessionStorage.fail) {
        if (window.testRunner)
            testRunner.notifyDone();
        return;
    }

    location = location.href + '?done';
    window.setTimeout(passTest, 0);
};
window.onbeforeunload = function ()
{
    if (sessionStorage.fail)
        return;
    sessionStorage.fail = true;
    location.reload();
    return "";
};
function passTest()
{
    document.getElementById('status').textContent = 'PASS';
    if (window.testRunner)
        testRunner.notifyDone();
}
</script>
<body>
This test passes if the FAIL changes to PASS after clicking "Stay on this page".

<div id="status">FAIL</div>
</body>