<html>
<head>
<script src="../../../resources/js-test-pre.js"></script>
<script>
window.jsTestIsAsync = true;

if (window.testRunner) {
    // We explicitly call testRunner.waitUntilDone() because we call window.open() before
    // js-test-post.js is processed.
    testRunner.waitUntilDone();
}

function checkResultAndNotifyDone()
{
    shouldBeDefined('window.localStorage');
    shouldBeUndefined('window.localStorage["test"]');
    window.localStorage.clear();
    finishJSTest();
}
</script>
</head>
<body>
<script>
description("Tests that we can't store a value in local storage after calling window.close().");
window.open("resources/close-window-and-set-value-in-storage.html");
</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>
