tor-browser

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

credentials.https.html (1814B)


      1 <!DOCTYPE html>
      2 <meta charset=utf-8>
      3 <title>Cache Storage: Verify credentials are respected by Cache operations</title>
      4 <link rel="help" href="https://w3c.github.io/ServiceWorker/#cache-storage">
      5 <script src="/resources/testharness.js"></script>
      6 <script src="/resources/testharnessreport.js"></script>
      7 <script src="./../service-worker/resources/test-helpers.sub.js"></script>
      8 <style>iframe { display: none; }</style>
      9 <script>
     10 
     11 var worker = "./resources/credentials-worker.js";
     12 var scope = "./resources/credentials-iframe.html";
     13 promise_test(function(t) {
     14  return self.caches.delete('credentials')
     15    .then(function() {
     16      return service_worker_unregister_and_register(t, worker, scope)
     17    })
     18    .then(function(reg) {
     19      return wait_for_state(t, reg.installing, 'activated');
     20    })
     21    .then(function() {
     22      return with_iframe(scope);
     23    })
     24    .then(function(frame) {
     25      frame.contentWindow.postMessage([
     26        {name: 'file.txt', username: 'aa', password: 'bb'},
     27        {name: 'file.txt', username: 'cc', password: 'dd'},
     28        {name: 'file.txt'}
     29      ], '*');
     30      return new Promise(function(resolve, reject) {
     31        window.onmessage = t.step_func(function(e) {
     32          resolve(e.data);
     33        });
     34      });
     35    })
     36    .then(function(data) {
     37      assert_equals(data.length, 3, 'three entries should be present');
     38      assert_equals(data.filter(function(url) { return /@/.test(url); }).length, 2,
     39        'two entries should contain credentials');
     40      assert_true(data.some(function(url) { return /aa:bb@/.test(url); }),
     41        'entry with credentials aa:bb should be present');
     42      assert_true(data.some(function(url) { return /cc:dd@/.test(url); }),
     43        'entry with credentials cc:dd should be present');
     44    });
     45 }, "Cache API matching includes credentials");
     46 </script>