diff options
author | Ben Murdoch <benm@google.com> | 2010-10-22 13:02:20 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2010-10-26 15:21:41 +0100 |
commit | a94275402997c11dd2e778633dacf4b7e630a35d (patch) | |
tree | e66f56c67e3b01f22c9c23cd932271ee9ac558ed /LayoutTests/http/tests/appcache/fail-on-update-2.html | |
parent | 09e26c78506587b3f5d930d7bc72a23287ffbec0 (diff) | |
download | external_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.zip external_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.tar.gz external_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.tar.bz2 |
Merge WebKit at r70209: Initial merge by Git
Change-Id: Id23a68efa36e9d1126bcce0b137872db00892c8e
Diffstat (limited to 'LayoutTests/http/tests/appcache/fail-on-update-2.html')
-rw-r--r-- | LayoutTests/http/tests/appcache/fail-on-update-2.html | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/LayoutTests/http/tests/appcache/fail-on-update-2.html b/LayoutTests/http/tests/appcache/fail-on-update-2.html new file mode 100644 index 0000000..fcbc3dd --- /dev/null +++ b/LayoutTests/http/tests/appcache/fail-on-update-2.html @@ -0,0 +1,64 @@ +<html manifest="resources/fail-on-update-2.php"> +<script> +if (window.layoutTestController) { + layoutTestController.dumpAsText(); + layoutTestController.waitUntilDone(); +} + +function setManifestDeleted(state) +{ + var req = new XMLHttpRequest; + req.open("GET", "resources/fail-on-update.php?command=" + (state ? "delete" : "reset"), false); + req.send(null); +} + +function test() +{ + clearTimeout(timeoutId); + + setManifestDeleted(true); + applicationCache.update(); + + // Create two subframes at different times to make hitting the race condition more likely. + var ifr = document.createElement("iframe"); + ifr.setAttribute("src", 'resources/fail-on-update-2.html'); + document.body.appendChild(ifr); + + setTimeout(function() { + var ifr = document.createElement("iframe"); + ifr.setAttribute("src", 'resources/fail-on-update-2.html'); + document.body.appendChild(ifr); + }, 0); +} + +var subframesLeft = 2; +function subframeLoaded() +{ + if (!--subframesLeft) { + document.write('<p>SUCCESS: No crash.</p>'); + if (window.layoutTestController) + layoutTestController.notifyDone(); + } +} + +function resetManifest() +{ + if (applicationCache.status != applicationCache.UNCACHED && applicationCache.status != applicationCache.OBSOLETE) { + timeoutId = setTimeout(resetManifest, 100); + return; + } + + setManifestDeleted(false); + location.reload(); +} + +applicationCache.addEventListener('noupdate', function() { setTimeout(test, 0) }, false); +applicationCache.addEventListener('cached', function() { setTimeout(test, 0) }, false); + +// If the manifest script happened to be in a wrong state, reset it. +var timeoutId = setTimeout(resetManifest, 100); + +</script> +<p>Test for a particular incorrect assertion failure.</p> + +</html> |