123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- var name = "delete" + context;
- var c;
- function setupTest(reqs) {
- return new Promise(function(resolve, reject) {
- var cache;
- caches.open(name).then(function(c) {
- cache = c;
- return c.addAll(reqs);
- }).then(function() {
- resolve(cache);
- }).catch(function(err) {
- reject(err);
- });
- });
- }
- function testBasics() {
- var tests = [
- "//mochi.test:8888/?foo" + context,
- "//mochi.test:8888/?bar" + context,
- ];
- var cache;
- return setupTest(tests)
- .then(function(c) {
- cache = c;
- return cache.delete("//mochi.test:8888/?baz");
- }).then(function(deleted) {
- ok(!deleted, "Deleting a non-existing entry should fail");
- return cache.keys();
- }).then(function(keys) {
- is(keys.length, 2, "No entries from the cache should be deleted");
- return cache.delete(tests[0]);
- }).then(function(deleted) {
- ok(deleted, "Deleting an existing entry should succeed");
- return cache.keys();
- }).then(function(keys) {
- is(keys.length, 1, "Only one entry should exist now");
- ok(keys[0].url.indexOf(tests[1]) >= 0, "The correct entry must be deleted");
- });
- }
- function testFragment() {
- var tests = [
- "//mochi.test:8888/?foo" + context,
- "//mochi.test:8888/?bar" + context,
- "//mochi.test:8888/?baz" + context + "#fragment",
- ];
- var cache;
- return setupTest(tests)
- .then(function(c) {
- cache = c;
- return cache.delete(tests[0] + "#fragment");
- }).then(function(deleted) {
- ok(deleted, "Deleting an existing entry should succeed");
- return cache.keys();
- }).then(function(keys) {
- is(keys.length, 2, "Only one entry should exist now");
- ok(keys[0].url.indexOf(tests[1]) >= 0, "The correct entry must be deleted");
- ok(keys[1].url.indexOf(tests[2].replace("#fragment", "")) >= 0, "The correct entry must be deleted");
- // Now, delete a request that was added with a fragment
- return cache.delete("//mochi.test:8888/?baz" + context);
- }).then(function(deleted) {
- ok(deleted, "Deleting an existing entry should succeed");
- return cache.keys();
- }).then(function(keys) {
- is(keys.length, 1, "Only one entry should exist now");
- ok(keys[0].url.indexOf(tests[1]) >= 0, "3The correct entry must be deleted");
- });
- }
- function testInterleaved() {
- var tests = [
- "//mochi.test:8888/?foo" + context,
- "//mochi.test:8888/?bar" + context,
- ];
- var newURL = "//mochi.test:8888/?baz" + context;
- var cache;
- return setupTest(tests)
- .then(function(c) {
- cache = c;
- // Simultaneously add and delete a request
- return Promise.all([
- cache.delete(newURL),
- cache.add(newURL),
- ]);
- }).then(function(result) {
- ok(!result[1], "deletion should fail");
- return cache.keys();
- }).then(function(keys) {
- is(keys.length, 3, "Tree entries should still exist");
- ok(keys[0].url.indexOf(tests[0]) >= 0, "The correct entry must be deleted");
- ok(keys[1].url.indexOf(tests[1]) >= 0, "The correct entry must be deleted");
- ok(keys[2].url.indexOf(newURL) >= 0, "The new entry should be correctly inserted");
- });
- }
- // Make sure to clean up after each test step.
- function step(testPromise) {
- return testPromise.then(function() {
- caches.delete(name);
- });
- }
- step(testBasics()).then(function() {
- return step(testFragment());
- }).then(function() {
- return step(testInterleaved());
- }).then(function() {
- testDone();
- });
|