diff options
Diffstat (limited to 'LayoutTests/http/tests/appcache/non-html.xhtml')
-rw-r--r-- | LayoutTests/http/tests/appcache/non-html.xhtml | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/LayoutTests/http/tests/appcache/non-html.xhtml b/LayoutTests/http/tests/appcache/non-html.xhtml new file mode 100644 index 0000000..d27681e --- /dev/null +++ b/LayoutTests/http/tests/appcache/non-html.xhtml @@ -0,0 +1,103 @@ +<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.layoutTestController) { + layoutTestController.dumpAsText() + layoutTestController.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.layoutTestController) + layoutTestController.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.addEventListener('error', error, false); + +</script> +</body> +</html> |