tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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');