tor-browser

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

intercept-multiple-times.html (1288B)


      1 <!doctype html>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 <script>
      5 promise_test(async t => {
      6  let p1_resolved = false;
      7  let p2_resolved = false;
      8  let p3_resolved = false;
      9  navigation.onnavigate = t.step_func(e => {
     10    e.intercept({ handler: async () => {
     11      await Promise.resolve();
     12      assert_false(p2_resolved);
     13      assert_false(p3_resolved);
     14      p1_resolved = true;
     15    }});
     16    e.intercept({ handler: async () => {
     17      await new Promise(resolve => t.step_timeout(resolve, 1));
     18      assert_true(p1_resolved);
     19      assert_false(p3_resolved);
     20      p2_resolved = true;
     21    }});
     22    e.intercept({ handler: async () => {
     23      await new Promise(resolve => t.step_timeout(resolve, 1));
     24      assert_true(p1_resolved);
     25      assert_true(p2_resolved);
     26      p3_resolved = true;
     27    }});
     28  });
     29 
     30  let promise = navigation.navigate("#1").finished;
     31  assert_equals(location.hash, "#1");
     32  assert_false(p1_resolved);
     33  assert_false(p2_resolved);
     34  assert_false(p3_resolved);
     35 
     36  await promise;
     37  assert_true(p1_resolved);
     38  assert_true(p2_resolved);
     39  assert_true(p3_resolved);
     40 }, "navigation.navigate() returns a finished promise that awaits all promises if event.intercept() is called multiple times");
     41 </script>