<body>
<script>
var count = 0;

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

function addRandom()
{
    var script = document.createElement("script");
    script.setAttribute("src", "resources/random-no-store.py");
    document.body.appendChild(script);
}
++count;
addRandom();

setInterval(function() {
    if (count == 1 && document.getElementsByTagName("p").length == 1) {
        ++count;
        addRandom();
    } else if (document.getElementsByTagName("p").length == 2) {
        document.write(document.getElementsByTagName("p")[0].innerHTML == document.getElementsByTagName("p")[1].innerHTML ? 
            "FAIL<br>" : "PASS<br>");
        if (window.testRunner)
            testRunner.notifyDone();
    }
}, 10);
</script>
