<html>
<head>
<script src="resources/clearSessionStorage.js"></script>
<script>

if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.setCanOpenWindows();
    testRunner.waitUntilDone();
}

function log(a)
{
    document.getElementById("logger").innerHTML += a + "<br>";
}

function runTest()
{
    if (!window.sessionStorage) {
        log("window.sessionStorage DOES NOT exist");
        return;
    }
    
    window.log = log;
    
    window.sessionStorage.setItem("FOO", "BAR");
    log("Value for FOO is " + window.sessionStorage.getItem("FOO"));    
    window.open("resources/window-open-second.html");
    

}

</script>
</head>
<body onload="runTest();">
This is a new window to make sure there is a copy of the previous window's sessionStorage, and that they diverge after a change<br>
<div id="logger"></div>
</body>
</html>
