Index: LayoutTests/http/tests/serviceworker/resources/cache-storage-keys-worker.js |
diff --git a/LayoutTests/http/tests/serviceworker/resources/cache-storage-keys-worker.js b/LayoutTests/http/tests/serviceworker/resources/cache-storage-keys-worker.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a3a7315d95bd5739d3fec0da0dd3fb22c7f7b088 |
--- /dev/null |
+++ b/LayoutTests/http/tests/serviceworker/resources/cache-storage-keys-worker.js |
@@ -0,0 +1,34 @@ |
+importScripts('worker-test-harness.js'); |
+ |
+var test_cache_list = |
+ ['', 'example', 'Another cache name', 'A', 'a', 'ex ample']; |
+ |
+promise_test(function(test) { |
+ return self.caches.keys() |
+ .then(function(keys) { |
+ assert_true(Array.isArray(keys), |
+ 'CacheStorage.keys should return an Array.'); |
+ if (keys.length > 0) { |
+ return Promise.all(keys.map(function(key) { |
+ return self.caches.delete(key); |
+ })); |
+ } else { |
+ return Promise.resolve(true); |
jsbell
2014/08/28 21:07:26
No need for this special case if keys.length === 0
asanka
2014/08/28 21:59:46
Done.
|
+ } |
+ }) |
+ .then(function() { |
+ return Promise.all(test_cache_list.map(function(key) { |
+ return self.caches.create(key); |
+ })); |
+ }) |
+ |
+ .then(function() { return self.caches.keys(); }) |
+ .then(function(keys) { |
+ assert_true(Array.isArray(keys), |
+ 'CacheStorage.keys should return an Array.'); |
+ assert_array_equals(keys, |
jsbell
2014/08/28 21:07:26
Order is apparently not guaranteed. Needs an "equi
jsbell
2014/08/28 21:49:01
Apparently we're supposed to preserve the order, s
asanka
2014/08/28 21:59:46
Acknowledged.
|
+ test_cache_list, |
+ 'CacheStorage.keys should only return ' + |
+ 'existing caches.'); |
+ }); |
+ }, 'CacheStorage keys'); |