<html manifest="resources/idempotent-update.manifest"> <body> <p>Test what applicationCache.update() does if update is already in progess.</p> <p>Should say DONE, with no failures:</p> <div id=result></div> <script> if (window.layoutTestController) { layoutTestController.dumpAsText(); layoutTestController.waitUntilDone(); } function log(message) { document.getElementById("result").innerHTML += message + "<br>"; } function test() { // During update, additional update() should be no-op (the spec says that fake checking and // downloading events need to be dispatched, but that's only when the update algorithm is invoked // with a browsing context). if (applicationCache.status != applicationCache.IDLE) log("FAIL: Unexpected cache status while preparing to test: " + applicationCache.status); var checkingCount = 0; applicationCache.onchecking = function() { if (++checkingCount != 1) log("FAIL: Too many checking events received.") } applicationCache.update(); applicationCache.update(); applicationCache.update(); applicationCache.update(); applicationCache.update(); applicationCache.onnoupdate = done; applicationCache.oncached = function() { log("FAIL: received unexpected cached event") } } function done() { setTimeout(function() { log("DONE"); if (window.layoutTestController) layoutTestController.notifyDone(); }, 10); } applicationCache.oncached = test; applicationCache.onnoupdate = test; applicationCache.onupdateready = function() { log("FAIL: received unexpected updateready event") } applicationCache.onerror = function() { log("FAIL: received unexpected error event") } </script> </body> </html>