common.https.window.js (1609B)
1 // META: title=Cache Storage: Verify that Window and Workers see same storage 2 // META: timeout=long 3 4 function wait_for_message(worker) { 5 return new Promise(function(resolve) { 6 worker.addEventListener('message', function listener(e) { 7 resolve(e.data); 8 worker.removeEventListener('message', listener); 9 }); 10 }); 11 } 12 13 promise_test(function(t) { 14 var cache_name = 'common-test'; 15 return self.caches.delete(cache_name) 16 .then(function() { 17 var worker = new Worker('resources/common-worker.js'); 18 worker.postMessage({name: cache_name}); 19 return wait_for_message(worker); 20 }) 21 .then(function(message) { 22 return self.caches.open(cache_name); 23 }) 24 .then(function(cache) { 25 return Promise.all([ 26 cache.match('https://example.com/a'), 27 cache.match('https://example.com/b'), 28 cache.match('https://example.com/c') 29 ]); 30 }) 31 .then(function(responses) { 32 return Promise.all(responses.map( 33 function(response) { return response.text(); } 34 )); 35 }) 36 .then(function(bodies) { 37 assert_equals(bodies[0], 'a', 38 'Body should match response put by worker'); 39 assert_equals(bodies[1], 'b', 40 'Body should match response put by worker'); 41 assert_equals(bodies[2], 'c', 42 'Body should match response put by worker'); 43 }); 44 }, 'Window sees cache puts by Worker');