diff options
Diffstat (limited to 'dom/cache/test/mochitest/test_cache_add.js')
-rw-r--r-- | dom/cache/test/mochitest/test_cache_add.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/dom/cache/test/mochitest/test_cache_add.js b/dom/cache/test/mochitest/test_cache_add.js new file mode 100644 index 0000000000..af2ffeb519 --- /dev/null +++ b/dom/cache/test/mochitest/test_cache_add.js @@ -0,0 +1,75 @@ +/* global context testDone:true */ + +var singleUrl = "./test_cache_add.js"; +var urlList = ["./empty.html", "./frame.html", "./test_cache.js"]; +var cache; +var name = "adder" + context; +caches + .open(name) + .then(function(openCache) { + cache = openCache; + return cache.add("ftp://example.com/invalid" + context); + }) + .catch(function(err) { + is( + err.name, + "TypeError", + "add() should throw TypeError for invalid scheme" + ); + return cache.addAll([ + "http://example.com/valid" + context, + "ftp://example.com/invalid" + context, + ]); + }) + .catch(function(err) { + is( + err.name, + "TypeError", + "addAll() should throw TypeError for invalid scheme" + ); + var promiseList = urlList.map(function(url) { + return cache.match(url); + }); + promiseList.push(cache.match(singleUrl)); + return Promise.all(promiseList); + }) + .then(function(resultList) { + is(urlList.length + 1, resultList.length, "Expected number of results"); + resultList.every(function(result) { + is(undefined, result, "URLs should not already be in the cache"); + }); + return cache.add(singleUrl); + }) + .then(function(result) { + is(undefined, result, "Successful add() should resolve undefined"); + return cache.addAll(urlList); + }) + .then(function(result) { + is(undefined, result, "Successful addAll() should resolve undefined"); + var promiseList = urlList.map(function(url) { + return cache.match(url); + }); + promiseList.push(cache.match(singleUrl)); + return Promise.all(promiseList); + }) + .then(function(resultList) { + is(urlList.length + 1, resultList.length, "Expected number of results"); + resultList.every(function(result) { + ok(!!result, "Responses should now be in cache for each URL."); + }); + return cache.matchAll(); + }) + .then(function(resultList) { + is(urlList.length + 1, resultList.length, "Expected number of results"); + resultList.every(function(result) { + ok(!!result, "Responses should now be in cache for each URL."); + }); + return caches.delete(name); + }) + .then(function() { + testDone(); + }) + .catch(function(err) { + ok(false, "Caught error: " + err); + testDone(); + }); |