diff options
Diffstat (limited to 'LayoutTests/http/tests/appcache/foreign-fallback.html')
-rw-r--r-- | LayoutTests/http/tests/appcache/foreign-fallback.html | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/LayoutTests/http/tests/appcache/foreign-fallback.html b/LayoutTests/http/tests/appcache/foreign-fallback.html new file mode 100644 index 0000000..7a80046 --- /dev/null +++ b/LayoutTests/http/tests/appcache/foreign-fallback.html @@ -0,0 +1,48 @@ +<html manifest="resources/foreign-fallback.manifest"> +<body> +<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=44406">bug 44406</a>: +Application Cache crash when a fallback document has a manifest URL.</p> +<div id="result">Testing...</div> +<script> +if (window.layoutTestController) { + layoutTestController.waitUntilDone(); + layoutTestController.dumpAsText(); +} + + +applicationCache.addEventListener('cached', test, false); +applicationCache.addEventListener('noupdate', test, false); + +function test() +{ + var ifr = document.createElement("iframe"); + ifr.setAttribute("src", "resources/foreign-fallback/does-not-exist.html"); + document.body.appendChild(ifr); + + // I couldn't find any event that would fire on frame loading failure, so let's poll. + setTimeout(frameDone, 100); +} + +function frameDone() +{ + try { + var frameContent = frames[0].document.documentElement.innerHTML; + if (frameContent.match("Not Found")) + document.getElementById("result").innerHTML = "PASS"; + else if (frameContent.match("FAIL")) + document.getElementById("result").innerHTML = "FAIL"; + else + throw "Try again"; + + if (window.layoutTestController) + layoutTestController.notifyDone(); + } catch (ex) { + // Not done yet. + setTimeout(frameDone, 100); + } +} + +</script> +<p>The frame below should display a Not Found error - the fallback entry is foreign, so it shouldn't be used for main resource.</p> +</body> +</html> |