Index: LayoutTests/http/tests/cachestorage/common.html |
diff --git a/LayoutTests/http/tests/cachestorage/common.html b/LayoutTests/http/tests/cachestorage/common.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5d652bb231913f0ce5786953b273f202ff120abc |
--- /dev/null |
+++ b/LayoutTests/http/tests/cachestorage/common.html |
@@ -0,0 +1,51 @@ |
+<!DOCTYPE html> |
+<title>Cache Storage: Verify that Window and Workers see same storage</title> |
+<link rel="help" href="https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#cache-storage"> |
+<script src="/resources/testharness.js"></script> |
+<script src="/resources/testharnessreport.js"></script> |
+<script src="/resources/testharness-helpers.js"></script> |
+<script> |
+ |
+function wait_for_message(worker) { |
+ return new Promise(function(resolve) { |
+ worker.addEventListener('message', function listener(e) { |
+ resolve(e.data); |
+ worker.removeEventListener('message', listener); |
+ }); |
+ }); |
+} |
+ |
+promise_test(function(t) { |
+ var cache_name = 'common-test'; |
+ return self.caches.delete(cache_name) |
+ .then(function() { |
+ var worker = new Worker('resources/common-worker.js'); |
+ worker.postMessage({name: cache_name}); |
+ return wait_for_message(worker); |
+ }) |
+ .then(function(message) { |
+ return self.caches.open(cache_name); |
+ }) |
+ .then(function(cache) { |
+ return Promise.all([ |
+ cache.match('https://example.com/a'), |
+ cache.match('https://example.com/b'), |
+ cache.match('https://example.com/c') |
+ ]); |
+ }) |
+ .then(function(responses) { |
+ return Promise.all(responses.map( |
+ function(response) { return response.text(); } |
+ )); |
+ }) |
+ .then(function(bodies) { |
+ assert_equals(bodies[0], 'a', |
+ 'Body should match response put by worker'); |
+ assert_equals(bodies[1], 'b', |
+ 'Body should match response put by worker'); |
+ assert_equals(bodies[2], 'c', |
+ 'Body should match response put by worker'); |
+ }); |
+}, 'Window sees cache puts by Worker'); |
+ |
+</script> |