| <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.testRunner) { | |
| testRunner.dumpAsText(); | |
| testRunner.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.testRunner) | |
| testRunner.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> |