<html manifest="resources/interrupted-update.manifest">
<p>Test that an application cache update works again after interruption.</p>
<pre id=log></pre>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function log(msg)
{
    document.getElementById("log").innerHTML += msg + "\n";
}

var haveReloaded = window.location.hash === "#reloaded";

if (haveReloaded)
    log("Reloaded");

function onchecking()
{
    log("CHECKING");
}

function ondownloading()
{
    log("DOWNLOADING");
}

function onprogress(event)
{
    log("PROGRESS " + event.loaded + "/" + event.total);

    if (!haveReloaded && event.loaded == 2) {
        reloadedLocation = window.location + "#reloaded";
        window.location = "/resources/redirect.py?url=" + encodeURIComponent(reloadedLocation);
        console.log("Reloading...");
    }
}

function onnoupdate()
{
    log("NOUPDATE");
    log("\nFAIL - the cache was already present, so we couldn't test initial loading");
    if (window.testRunner)
        testRunner.notifyDone();
}

function oncached()
{
    log("CACHED");
    log("\nPASS");
    if (window.testRunner)
        testRunner.notifyDone();
}

function onerror()
{
    log("ERROR");
    log("\nFAIL");
    if (window.testRunner)
        testRunner.notifyDone();
}


applicationCache.addEventListener('checking', onchecking, false);
applicationCache.addEventListener('downloading', ondownloading, false);
applicationCache.addEventListener('progress', onprogress, false);
applicationCache.addEventListener('noupdate', onnoupdate, false);
applicationCache.addEventListener('cached', oncached, false);
applicationCache.addEventListener('error', onerror, false);

</script>

</html>
