Home | History | Annotate | Download | only in appcache
      1 <html manifest="resources/subframes-3.manifest">
      2 <body>
      3 <p>Test that a subframe with manifest that matches top frame manifest works correctly.</p>
      4 <p>In this case, the subframe resource is NOT listed in manifest explicitly.</p>
      5 <p>Should say SUCCESS:</p>
      6 <div id=result></div>
      7 
      8 <script>
      9 if (window.layoutTestController) {
     10     layoutTestController.dumpAsText();
     11     layoutTestController.waitUntilDone();
     12 }
     13 
     14 function log(message)
     15 {
     16     document.getElementById("result").innerHTML += message + "<br>";
     17 }
     18 
     19 function debug(message)
     20 {
     21     // If running manually in the browser, print the sequence of events.
     22     if (!window.layoutTestController)
     23         log(message);
     24 }
     25 
     26 var receivedExpectedMessage = false;
     27 var receivedCheckingEventsCounter = 0;
     28 var receivedNoupdateEventsCounter = 0;
     29 
     30 function checkDone()
     31 {
     32     if (receivedExpectedMessage && receivedCheckingEventsCounter == 2 && receivedNoupdateEventsCounter == 2) {
     33         log("SUCCESS");
     34         if (window.layoutTestController)
     35             layoutTestController.notifyDone();
     36     }
     37 }
     38 
     39 function test()
     40 {
     41     applicationCache.onnoupdate = null;
     42     applicationCache.oncached = null;
     43 
     44     // When a new main resource is associated with the cache, an update should be started.
     45     applicationCache.onchecking = function() { debug("checking"); receivedCheckingEventsCounter++; checkDone() }
     46     applicationCache.onnoupdate = function() { debug("noupdate"); receivedNoupdateEventsCounter++; checkDone();  }
     47 
     48     var ifr = document.createElement("iframe");
     49     ifr.setAttribute("src", "resources/subframe-3.html");
     50     document.body.appendChild(ifr);
     51 }
     52 
     53 function test2()
     54 {
     55     window.removeEventListener("message", test2, false);
     56     window.addEventListener("message", test3, false);
     57 
     58     // Add an identical frame, to test that loading its resources from appcache works.
     59     var ifr = document.createElement("iframe");
     60     ifr.setAttribute("src", "resources/subframe-3.html");
     61     document.body.appendChild(ifr);
     62 }
     63 
     64 function test3()
     65 {
     66     debug("message");
     67     receivedExpectedMessage = true;
     68     checkDone();
     69 }
     70 
     71 applicationCache.onnoupdate = function() { test() }
     72 applicationCache.oncached = function() { test() }
     73 
     74 applicationCache.onupdateready = function() { log("FAIL: received unexpected updateready event") }
     75 applicationCache.onerror = function() { log("FAIL: received unexpected error event") }
     76 
     77 window.addEventListener("message", test2, false);
     78 
     79 </script>
     80 </body>
     81 </html>
     82