<!DOCTYPE html>
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<script>
if (window.testRunner)
    testRunner.setShouldStayOnPageAfterHandlingBeforeUnload(true);

function test(_iframe) {
    iframe = _iframe;
    iframe.contentWindow.onbeforeunload = function(event) {
    if (iframe.done) {
        finishJSTest();
        return;
    }
    iframe.done = true;
    testEvent = event;
    shouldBe("testEvent.__proto__", "iframe.contentWindow.BeforeUnloadEvent.prototype");
    shouldBeEqualToString("testEvent.returnValue", "");
    event.returnValue = "This is beforeunload from the top level frame.";
    shouldBeEqualToString("testEvent.returnValue", "This is beforeunload from the top level frame.");

    setTimeout(function() {
        if (window.testRunner)
            testRunner.setShouldStayOnPageAfterHandlingBeforeUnload(false);
        iframe.contentWindow.location.href = "resources/does-not-exist.html";
    }, 0);
    }

    iframe.contentWindow.location.href = "resources/does-not-exist.html";
}

</script>
</head>
<body>
<iframe id="iframe" onload="test(this)" src="resources/onclick.html"></iframe>
<script>
description("Tests the returnValue attribute of the BeforeUnloadEvent.");
self.jsTestIsAsync = true;

</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>

