diff options
Diffstat (limited to 'LayoutTests/http/tests/appcache/online-whitelist.html')
-rw-r--r-- | LayoutTests/http/tests/appcache/online-whitelist.html | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/LayoutTests/http/tests/appcache/online-whitelist.html b/LayoutTests/http/tests/appcache/online-whitelist.html new file mode 100644 index 0000000..f33fb6d --- /dev/null +++ b/LayoutTests/http/tests/appcache/online-whitelist.html @@ -0,0 +1,77 @@ +<html manifest="resources/online-whitelist.manifest"> +<body> +<p>Test online whitelist functionality. Should say PASS:</p> + +<div id="result"></div> +<script> +if (window.layoutTestController) { + layoutTestController.dumpAsText() + layoutTestController.waitUntilDone(); +} + +function log(message) +{ + document.getElementById("result").innerHTML += message + "<br>"; +} + +var hadError = false; + +function canLoad(url) +{ + try { + var req = new XMLHttpRequest(); + req.open("GET", url, false); + req.send(""); + return true; + } catch (e) { + return false; + } +} + +function load(url) +{ + try { + var req = new XMLHttpRequest(); + req.open("GET", url, false); + req.send(""); + return req.responseText; + } catch (ex) { + alert("Unexpected error loading " + url + ": " + ex); + hadError = true; + } +} + +function test() +{ + if (load("resources/counter.php?cached") != load("resources/counter.php?cached")) { + log("FAIL: Explicit entry didn't override online whitelist."); + hadError = true; + } + + if (load("resources/counter.php?uncached") == load("resources/counter.php?uncached")) { + log("FAIL: Online whitelist resource wasn't reloaded from network."); + hadError = true; + } + + if (load("resources/counter.php?uncachedxxx") == load("resources/counter.php?uncachedxxx")) { + log("FAIL: Online whitelist resource wasn't reloaded from network (prefix matching)."); + hadError = true; + } + + if (canLoad("resources/counter.php?foobar")) { + log("FAIL: Uncached resource was successfully loaded."); + hadError = true; + } + + log(hadError ? "FAIL" : "PASS"); + + if (window.layoutTestController) + layoutTestController.notifyDone(); +} + +applicationCache.addEventListener('cached', test, false); +applicationCache.addEventListener('noupdate', test, false); + +</script> +</body> +</html> |