<html manifest="resources/versioned-manifest.php"> <body> <p>Test a simple offline application self-update process. Should print a series of messages followed with DONE:</p> <div id=result></div> <script> if (window.layoutTestController) { layoutTestController.dumpAsText(); layoutTestController.waitUntilDone(); } function log(message) { document.getElementById("result").innerHTML += message + "<br>"; } function modifyManifest() { var req = new XMLHttpRequest; req.open("GET", "resources/versioned-manifest.php?command=step", false); req.send(false); } function test() { modifyManifest(); applicationCache.oncached = function() { log("FAIL: Unexpected cached event") } applicationCache.onnoupdate = function() { log("FAIL: Unexpected noupdate event") } applicationCache.onupdateready = function() { setTimeout(test2, 0) } log("Updating cache group..."); setTimeout("applicationCache.update()", 0); } function test2() { log((applicationCache.status == applicationCache.UPDATEREADY) ? "Cache status is UPDATEREADY" : ("FAIL: Incorrect cache status, " + applicationCache.status)); modifyManifest(); applicationCache.onupdateready = function() { setTimeout(test3, 0) } log("Updating cache group once more..."); setTimeout("applicationCache.update()", 0); } function test3() { log((applicationCache.status == applicationCache.UPDATEREADY) ? "Cache status is UPDATEREADY" : ("FAIL: Incorrect cache status, " + applicationCache.status)); log("Associating document with the newest cache version..."); applicationCache.swapCache(); log((applicationCache.status == applicationCache.IDLE) ? "Cache status is IDLE" : ("FAIL: Incorrect cache status, " + applicationCache.status)); log("DONE"); if (window.layoutTestController) layoutTestController.notifyDone(); } applicationCache.oncached = test; applicationCache.onnoupdate = test; applicationCache.onupdateready = function() { log("FAIL: Unexpected updateready event") } applicationCache.onerror = function() { log("FAIL: Unexpected error event") } applicationCache.onobsolete = function() { log("FAIL: Unexpected obsolete event") } </script> </body> </html>