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

if (window.testRunner) {
    testRunner.setCanOpenWindows();

    // 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() even if we created the local storage before the call to window.close().");
window.open("resources/access-storage-close-window-and-set-value-in-storage.html");
</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>
