| OLD | NEW |
| 1 importScripts('worker-testharness.js'); | 1 importScripts('worker-testharness.js'); |
| 2 importScripts('../../resources/testharness-helpers.js'); | 2 importScripts('../../resources/testharness-helpers.js'); |
| 3 | 3 |
| 4 promise_test(function(t) { | 4 promise_test(function(t) { |
| 5 var cache_name = 'cache-storage/foo'; | 5 var cache_name = 'cache-storage/foo'; |
| 6 return self.caches.delete(cache_name) | 6 return self.caches.delete(cache_name) |
| 7 .then(function() { | 7 .then(function() { |
| 8 return self.caches.create(cache_name); | 8 return self.caches.open(cache_name); |
| 9 }) | 9 }) |
| 10 .then(function(cache) { | 10 .then(function(cache) { |
| 11 assert_true(cache instanceof Cache, | 11 assert_true(cache instanceof Cache, |
| 12 'CacheStorage.create should return a Cache.'); | 12 'CacheStorage.open should return a Cache.'); |
| 13 }); | 13 }); |
| 14 }, 'CacheStorage.create'); | 14 }, 'CacheStorage.open'); |
| 15 | 15 |
| 16 promise_test(function(t) { | 16 promise_test(function(t) { |
| 17 // Note that this test may collide with other tests running in the same | 17 // Note that this test may collide with other tests running in the same |
| 18 // origin that also uses an empty cache name. | 18 // origin that also uses an empty cache name. |
| 19 var cache_name = ''; | 19 var cache_name = ''; |
| 20 return self.caches.delete(cache_name) | 20 return self.caches.delete(cache_name) |
| 21 .then(function() { | 21 .then(function() { |
| 22 return self.caches.create(cache_name); | 22 return self.caches.open(cache_name); |
| 23 }) | 23 }) |
| 24 .then(function(cache) { | 24 .then(function(cache) { |
| 25 assert_true(cache instanceof Cache, | 25 assert_true(cache instanceof Cache, |
| 26 'CacheStorage.create should accept an empty name.'); | 26 'CacheStorage.open should accept an empty name.'); |
| 27 }); | 27 }); |
| 28 }, 'CacheStorage.create with an empty name'); | 28 }, 'CacheStorage.open with an empty name'); |
| 29 | 29 |
| 30 promise_test(function(t) { | 30 promise_test(function(t) { |
| 31 return assert_promise_rejects( | 31 return assert_promise_rejects( |
| 32 self.caches.create(), | 32 self.caches.open(), |
| 33 new TypeError(), | 33 new TypeError(), |
| 34 'CacheStorage.create should throw TypeError if called with no arguments.')
; | 34 'CacheStorage.open should throw TypeError if called with no arguments.'); |
| 35 }, 'CacheStorage.create with no arguments'); | 35 }, 'CacheStorage.open with no arguments'); |
| 36 | |
| 37 promise_test(function(t) { | |
| 38 var cache_name = 'cache-storage/there can be only one'; | |
| 39 return self.caches.delete(cache_name) | |
| 40 .then(function() { | |
| 41 return self.caches.create(cache_name); | |
| 42 }) | |
| 43 .then(function() { | |
| 44 return assert_promise_rejects( | |
| 45 self.caches.create(cache_name), | |
| 46 'InvalidAccessError', | |
| 47 'CacheStorage.create should throw InvalidAccessError if called ' + | |
| 48 'with existing cache name.'); | |
| 49 }); | |
| 50 }, 'CacheStorage.create with an existing cache name'); | |
| 51 | 36 |
| 52 promise_test(function(t) { | 37 promise_test(function(t) { |
| 53 var test_cases = [ | 38 var test_cases = [ |
| 54 { | 39 { |
| 55 name: 'cache-storage/lowercase', | 40 name: 'cache-storage/lowercase', |
| 56 should_not_match: | 41 should_not_match: |
| 57 [ | 42 [ |
| 58 'cache-storage/Lowercase', | 43 'cache-storage/Lowercase', |
| 59 ' cache-storage/lowercase', | 44 ' cache-storage/lowercase', |
| 60 'cache-storage/lowercase ' | 45 'cache-storage/lowercase ' |
| (...skipping 12 matching lines...) Expand all Loading... |
| 73 [ | 58 [ |
| 74 'cache-storage/has', | 59 'cache-storage/has', |
| 75 'cache-storage/has_in_the_name' | 60 'cache-storage/has_in_the_name' |
| 76 ] | 61 ] |
| 77 } | 62 } |
| 78 ]; | 63 ]; |
| 79 return Promise.all(test_cases.map(function(testcase) { | 64 return Promise.all(test_cases.map(function(testcase) { |
| 80 var cache_name = testcase.name; | 65 var cache_name = testcase.name; |
| 81 return self.caches.delete(cache_name) | 66 return self.caches.delete(cache_name) |
| 82 .then(function() { | 67 .then(function() { |
| 83 return self.caches.create(cache_name); | 68 return self.caches.open(cache_name); |
| 84 }) | 69 }) |
| 85 .then(function() { | 70 .then(function() { |
| 86 return self.caches.has(cache_name); | 71 return self.caches.has(cache_name); |
| 87 }) | 72 }) |
| 88 .then(function(result) { | 73 .then(function(result) { |
| 89 assert_true(result, | 74 assert_true(result, |
| 90 'CacheStorage.has should return true for existing ' + | 75 'CacheStorage.has should return true for existing ' + |
| 91 'cache.'); | 76 'cache.'); |
| 92 }) | 77 }) |
| 93 .then(function() { | 78 .then(function() { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 110 promise_test(function(t) { | 95 promise_test(function(t) { |
| 111 return self.caches.has('cheezburger') | 96 return self.caches.has('cheezburger') |
| 112 .then(function(result) { | 97 .then(function(result) { |
| 113 assert_false(result, | 98 assert_false(result, |
| 114 'CacheStorage.has should return false for ' + | 99 'CacheStorage.has should return false for ' + |
| 115 'nonexistent cache.'); | 100 'nonexistent cache.'); |
| 116 }); | 101 }); |
| 117 }, 'CacheStorage.has with nonexistent cache'); | 102 }, 'CacheStorage.has with nonexistent cache'); |
| 118 | 103 |
| 119 promise_test(function(t) { | 104 promise_test(function(t) { |
| 120 var cache_name = 'cache-storage/get'; | 105 var cache_name = 'cache-storage/open'; |
| 121 var cache; | 106 var cache; |
| 122 return self.caches.delete(cache_name) | 107 return self.caches.delete(cache_name) |
| 123 .then(function() { | 108 .then(function() { |
| 124 return self.caches.create(cache_name); | 109 return self.caches.open(cache_name); |
| 125 }) | 110 }) |
| 126 .then(function(result) { | 111 .then(function(result) { |
| 127 cache = result; | 112 cache = result; |
| 128 }) | 113 }) |
| 129 .then(function() { | 114 .then(function() { |
| 130 return self.caches.get(cache_name); | 115 return self.caches.open(cache_name); |
| 131 }) | 116 }) |
| 132 .then(function(result) { | 117 .then(function(result) { |
| 133 assert_equals(result, cache, | 118 assert_equals(result, cache, |
| 134 'CacheStorage.get should return the named Cache ' + | 119 'CacheStorage.open should return the named Cache ' + |
| 135 'object if it exists.'); | 120 'object if it exists.'); |
| 136 }) | 121 }) |
| 137 .then(function() { | 122 .then(function() { |
| 138 return self.caches.get(cache_name); | 123 return self.caches.open(cache_name); |
| 139 }) | 124 }) |
| 140 .then(function(result) { | 125 .then(function(result) { |
| 141 assert_equals(result, cache, | 126 assert_equals(result, cache, |
| 142 'CacheStorage.get should return the same ' + | 127 'CacheStorage.open should return the same ' + |
| 143 'instance of an existing Cache object.'); | 128 'instance of an existing Cache object.'); |
| 144 }); | 129 }); |
| 145 }, 'CacheStorage.get with existing cache'); | 130 }, 'CacheStorage.open with existing cache'); |
| 146 | |
| 147 promise_test(function(t) { | |
| 148 return self.caches.get('cheezburger') | |
| 149 .then(function(result) { | |
| 150 assert_equals(result, undefined, | |
| 151 'CacheStorage.get should return undefined for a ' + | |
| 152 'nonexistent cache.'); | |
| 153 }); | |
| 154 }, 'CacheStorage.get with nonexistent cache'); | |
| 155 | 131 |
| 156 promise_test(function(t) { | 132 promise_test(function(t) { |
| 157 var cache_name = 'cache-storage/delete'; | 133 var cache_name = 'cache-storage/delete'; |
| 158 | 134 |
| 159 return self.caches.delete(cache_name) | 135 return self.caches.delete(cache_name) |
| 160 .then(function() { | 136 .then(function() { |
| 161 return self.caches.create(cache_name); | 137 return self.caches.open(cache_name); |
| 162 }) | 138 }) |
| 163 .then(function() { return self.caches.delete(cache_name); }) | 139 .then(function() { return self.caches.delete(cache_name); }) |
| 164 .then(function(result) { | 140 .then(function(result) { |
| 165 assert_true(result, | 141 assert_true(result, |
| 166 'CacheStorage.delete should return true after ' + | 142 'CacheStorage.delete should return true after ' + |
| 167 'deleting an existing cache.'); | 143 'deleting an existing cache.'); |
| 168 }) | 144 }) |
| 169 | 145 |
| 170 .then(function() { return self.caches.has(cache_name); }) | 146 .then(function() { return self.caches.has(cache_name); }) |
| 171 .then(function(cache_exists) { | 147 .then(function(cache_exists) { |
| 172 assert_false(cache_exists, | 148 assert_false(cache_exists, |
| 173 'CacheStorage.has should return false after ' + | 149 'CacheStorage.has should return false after ' + |
| 174 'fulfillment of CacheStorage.delete promise.'); | 150 'fulfillment of CacheStorage.delete promise.'); |
| 175 }); | 151 }); |
| 176 }, 'CacheStorage.delete with existing cache'); | 152 }, 'CacheStorage.delete with existing cache'); |
| 177 | 153 |
| 178 promise_test(function(t) { | 154 promise_test(function(t) { |
| 179 return self.caches.delete('cheezburger') | 155 return self.caches.delete('cheezburger') |
| 180 .then(function(result) { | 156 .then(function(result) { |
| 181 assert_false(result, | 157 assert_false(result, |
| 182 'CacheStorage.delete should return false for a ' + | 158 'CacheStorage.delete should return false for a ' + |
| 183 'nonexistent cache.'); | 159 'nonexistent cache.'); |
| 184 }); | 160 }); |
| 185 }, 'CacheStorage.delete with nonexistent cache'); | 161 }, 'CacheStorage.delete with nonexistent cache'); |
| 186 | 162 |
| OLD | NEW |