diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /dom/tests/mochitest/ajax/offline/test_updateCheck.html | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'dom/tests/mochitest/ajax/offline/test_updateCheck.html')
-rw-r--r-- | dom/tests/mochitest/ajax/offline/test_updateCheck.html | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/dom/tests/mochitest/ajax/offline/test_updateCheck.html b/dom/tests/mochitest/ajax/offline/test_updateCheck.html new file mode 100644 index 000000000..1f0634cba --- /dev/null +++ b/dom/tests/mochitest/ajax/offline/test_updateCheck.html @@ -0,0 +1,87 @@ +<html xmlns="http://www.w3.org/1999/xhtml" manifest="http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/updatingManifest.sjs"> +<head> +<title>Cache update test</title> + +<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> +<script type="text/javascript" src="/tests/dom/tests/mochitest/ajax/offline/offlineTests.js"></script> +<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> + +<script class="testbody" type="text/javascript"> + +/* + * The test is checking nsIOfflineCacheUpdateService.checkForUpdate API: + * - cache a manifest + * - check for an update of it, expected is "no update avail" + * - modify the manifest on the server + * - check for an update again, expected is "update avail" + * - check for an update ones again, expected is "update avail" (secondary check to probe + * we didn't screw state of the manifest in the current cache with the first check) + * - cache the modified manifest, new version is now in the cache + * - last check for an update, expected is "no update avail" again + */ + +SimpleTest.waitForExplicitFinish(); + +var manifest = "http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/updatingManifest.sjs"; +var manifestURI = Cc["@mozilla.org/network/io-service;1"] + .getService(Ci.nsIIOService) + .newURI(manifest, null, null); +var updateService = Cc['@mozilla.org/offlinecacheupdate-service;1'] + .getService(Ci.nsIOfflineCacheUpdateService); + +var systemPrincipal = SpecialPowers.Services.scriptSecurityManager.getSystemPrincipal(); + +function manifestCached() +{ + // Run first check for an update + updateService.checkForUpdate(manifestURI, systemPrincipal, { + observe: function(subject, topic, data) { + OfflineTest.is(topic, "offline-cache-update-unavailable", "No update avail"); + + // Change the manifest content + OfflineTest.setSJSState(manifest, "second"); + + // Check we now get notification on update ready + updateService.checkForUpdate(manifestURI, systemPrincipal, { + observe: function(subject, topic, data) { + OfflineTest.is(topic, "offline-cache-update-available", "Update avail (1)"); + + // Do the check again. We must get the same result. Double check is here + // to make sure we don't overwrite any data in the cache by the check it self. + updateService.checkForUpdate(manifestURI, systemPrincipal, { + observe: function(subject, topic, data) { + OfflineTest.is(topic, "offline-cache-update-available", "Update avail (2)"); + + // Update the manifest, invokes manifestUpdated() + applicationCache.onupdateready = OfflineTest.priv(manifestUpdated); + applicationCache.update(); + } + }); + } + }); + } + }); +} + +function manifestUpdated() +{ + // Check for an update after manifest has been updated + updateService.checkForUpdate(manifestURI, systemPrincipal, { + observe: function(subject, topic, data) { + OfflineTest.is(topic, "offline-cache-update-unavailable", "No update avail (2)"); + + OfflineTest.teardownAndFinish(); + } + }); +} + +if (OfflineTest.setup()) { + applicationCache.onerror = OfflineTest.failEvent; + applicationCache.oncached = OfflineTest.priv(manifestCached); +} + +</script> +</head> +<body> +</body> +</html> |