blob: dc0e89c117d9be78138c05cb159e534c4c945bf5 [file] [log] [blame]
<html manifest="resources/multi-fallback.manifest">
<body>
<p>Test application cache fallback entries with multiple candidates.</p>
<p>Should say SUCCESS:</p>
<div id=result></div>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
var hadError = false;
function log(message)
{
document.getElementById("result").innerHTML += message + "<br>";
}
function setNetworkEnabled(state)
{
try {
var req = new XMLHttpRequest;
req.open("GET", "/resources/network-simulator.php?test=appcache-multi-fallback&command=" + (state ? "connect" : "disconnect"), false);
req.send("");
} catch (ex) {
log("Cannot access network simulator URL, ex = " + ex);
hadError = true;
}
}
function load(url)
{
try {
var req = new XMLHttpRequest();
req.open("GET", url, false);
req.send("");
return req.responseText;
} catch (ex) {
log("FAIL: Cannot load " + url + ", ex = " + ex);
hadError = true;
return ""; // This value should not be expected as the responseText for a url presented to this function.
}
}
var nonexistentURL = "resources/does-not-exist";
function test()
{
applicationCache.onnoupdate = function() { log("FAIL: received unexpected noupdate event") }
applicationCache.oncached = function() { log("FAIL: received unexpected cached event") }
setNetworkEnabled(true);
if (load(nonexistentURL) != "Hello, World!") {
log("FAIL: The longest fallback namespace wasn't used for a 404 response");
hadError = true;
}
log(hadError ? "FAILURE" : "SUCCESS");
if (window.testRunner)
testRunner.notifyDone();
}
applicationCache.onnoupdate = function() { test() }
applicationCache.oncached = function() { test() }
applicationCache.onupdateready = function() { log("FAIL: received unexpected updateready event") }
applicationCache.onerror = function() { log("FAIL: received unexpected error event") }
</script>
</body>
</html>