| <html xmlns="http://www.w3.org/1999/xhtml" |
| manifest="/resources/network-simulator.py?test=appcache-non-html&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.py?test=appcache-non-html&command=" + (state ? "connect" : "disconnect"), false); |
| req.send(""); |
| } |
| |
| function createFrame() |
| { |
| var ifr = document.createElement("iframe"); |
| ifr.setAttribute("src", "/resources/network-simulator.py?test=appcache-non-html&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.py?test=appcache-non-html&path=/appcache/resources/not-in-cache.txt", false); |
| req.send(); |
| } catch (e) { |
| if (e.code == DOMException.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.py?test=appcache-non-html&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> |