mirror of
https://github.com/servo/servo
synced 2026-04-29 19:07:38 +02:00
The old specification URL is https://slightlyoff.github.io/ServiceWorker/spec/service_worker/ has been replaced by the new one at https://w3c.github.io/ServiceWorker/.
53 lines
1.9 KiB
HTML
53 lines
1.9 KiB
HTML
<!DOCTYPE html>
|
|
<title>Cache Storage: Verify that Window and Workers see same storage</title>
|
|
<link rel="help" href="https://w3c.github.io/ServiceWorker/#cache-storage">
|
|
<meta name="timeout" content="long">
|
|
<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>
|