• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html manifest="resources/versioned-manifest.php">
2<body>
3<p>Test a simple offline application self-update process. Should print a series of messages followed with DONE:</p>
4<div id=result></div>
5
6<script>
7if (window.layoutTestController) {
8    layoutTestController.dumpAsText();
9    layoutTestController.waitUntilDone();
10}
11
12function log(message)
13{
14    document.getElementById("result").innerHTML += message + "<br>";
15}
16
17function modifyManifest()
18{
19    var req = new XMLHttpRequest;
20    req.open("GET", "resources/versioned-manifest.php?command=step", false);
21    req.send(false);
22}
23
24function test()
25{
26    modifyManifest();
27
28    applicationCache.oncached = function() { log("FAIL: Unexpected cached event") }
29    applicationCache.onnoupdate = function() { log("FAIL: Unexpected noupdate event") }
30    applicationCache.onupdateready = function() { setTimeout(test2, 0) }
31
32    log("Updating cache group...");
33    setTimeout("applicationCache.update()", 0);
34}
35
36function test2()
37{
38    log((applicationCache.status == applicationCache.UPDATEREADY) ? "Cache status is UPDATEREADY" : ("FAIL: Incorrect cache status, " + applicationCache.status));
39
40    modifyManifest();
41    applicationCache.onupdateready = function() { setTimeout(test3, 0) }
42
43    log("Updating cache group once more...");
44    setTimeout("applicationCache.update()", 0);
45}
46
47function test3()
48{
49    log((applicationCache.status == applicationCache.UPDATEREADY) ? "Cache status is UPDATEREADY" : ("FAIL: Incorrect cache status, " + applicationCache.status));
50
51    log("Associating document with the newest cache version...");
52    applicationCache.swapCache();
53
54    log((applicationCache.status == applicationCache.IDLE) ? "Cache status is IDLE" : ("FAIL: Incorrect cache status, " + applicationCache.status));
55
56    log("DONE");
57    if (window.layoutTestController)
58        layoutTestController.notifyDone();
59}
60
61applicationCache.oncached = test;
62applicationCache.onnoupdate = test;
63applicationCache.onupdateready = function() { log("FAIL: Unexpected updateready event") }
64applicationCache.onerror = function() { log("FAIL: Unexpected error event") }
65applicationCache.onobsolete = function() { log("FAIL: Unexpected obsolete event") }
66
67</script>
68</body>
69</html>
70