| <html xmlns="http://www.w3.org/1999/xhtml" | |
| manifest="/resources/network-simulator.php?path=/appcache/resources/non-html.manifest"> | |
| <head><title/></head> | |
| <body> | |
| <p>Test that non-HTML main resources work with application cache correctly.</p> | |
| <p>Should say SUCCESS:</p> | |
| <div id="result"></div> | |
| <script type="text/javascript"> | |
| if (window.testRunner) { | |
| testRunner.dumpAsText() | |
| testRunner.waitUntilDone(); | |
| } | |
| function log(message) | |
| { | |
| document.getElementById("result").innerHTML += message + "<br/>"; | |
| } | |
| function setNetworkEnabled(state) | |
| { | |
| var req = new XMLHttpRequest; | |
| req.open("GET", "/resources/network-simulator.php?command=" + (state ? "connect" : "disconnect"), false); | |
| req.send(""); | |
| } | |
| function createFrame() | |
| { | |
| var ifr = document.createElement("iframe"); | |
| ifr.setAttribute("src", "/resources/network-simulator.php?path=/appcache/resources/abe.png"); | |
| ifr.onload = frameCreated; | |
| document.body.appendChild(ifr); | |
| } | |
| function cached() | |
| { | |
| var hadError = false; | |
| applicationCache.removeEventListener('noupdate', cached, false); | |
| applicationCache.removeEventListener('cached', cached, false); | |
| setNetworkEnabled(false); | |
| // Load a resource that does not exist in the cache. | |
| try { | |
| var req = new XMLHttpRequest(); | |
| req.open("GET", "/resources/network-simulator.php?path=/appcache/resources/not-in-cache.txt", false); | |
| req.send(); | |
| } catch (e) { | |
| if (e.code == XMLHttpRequestException.NETWORK_ERR) | |
| hadError = true; | |
| } | |
| if (!hadError) { | |
| document.getElementById('result').innerHTML = "FAILURE: Did not get the right exception" | |
| return; | |
| } | |
| // Load a resource that exists in the cache. | |
| try { | |
| var req = new XMLHttpRequest(); | |
| req.open("GET", "/resources/network-simulator.php?path=/appcache/resources/simple.txt", false); | |
| req.send(); | |
| } catch (e) { | |
| document.getElementById('result').innerHTML = "FAILURE: Could not load data from cache" | |
| return; | |
| } | |
| if (req.responseText != 'Hello, World!') { | |
| document.getElementById('result').innerHTML = "FAILURE: Did not get correct data from cached resource" | |
| return; | |
| } | |
| createFrame(); | |
| } | |
| function frameCreated() | |
| { | |
| setNetworkEnabled(true); | |
| if (frames[0].document.documentElement.innerHTML.match(/abe\.png/)) | |
| log("SUCCESS") | |
| else | |
| log("FAIL: Frame.onload was called, but the image doesn't seem to be loaded."); | |
| if (window.testRunner) { | |
| applicationCache.onerror = null; | |
| testRunner.notifyDone(); | |
| } | |
| } | |
| function error() | |
| { | |
| // The simulator was in a wrong state, reset it. | |
| setNetworkEnabled(true); | |
| window.location.reload(); | |
| } | |
| applicationCache.addEventListener('cached', cached, false); | |
| applicationCache.addEventListener('noupdate', cached, false); | |
| applicationCache.onerror = error; | |
| </script> | |
| </body> | |
| </html> |