tor-browser

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

multiple-intercept.html (2448B)


      1 <!doctype html>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 <body>
      5 <div style="height: 1000px; width: 1000px;"></div>
      6 <div id="frag"></div>
      7 <script>
      8 let i = 0;
      9 async function urlDidChangeImmediately(listener, expected) {
     10  navigation.addEventListener("navigate", listener, { once: true });
     11  let expected_hash = "#" + ++i;
     12  assert_not_equals(location.hash, expected_hash);
     13  let finished = navigation.navigate(expected_hash).finished;
     14  assert_equals(location.hash === expected_hash, expected);
     15  await finished;
     16  assert_equals(location.hash, expected_hash);
     17 }
     18 
     19 async function testUrlDidChangeImmediately(listener) {
     20  await urlDidChangeImmediately(listener, true);
     21 }
     22 
     23 async function testUrlDidNotChangeImmediately(listener) {
     24  await urlDidChangeImmediately(listener, false);
     25 }
     26 
     27 promise_test(async t => {
     28  await testUrlDidNotChangeImmediately(e => {
     29    e.intercept({ precommitHandler: async () => {} });
     30    e.intercept({ precommitHandler: async () => {} });
     31  });
     32 }, "precommitHandler + precommitHandler");
     33 
     34 promise_test(async t => {
     35  await testUrlDidNotChangeImmediately(e => {
     36    e.intercept({ precommitHandler: async () => {} });
     37    e.intercept();
     38  });
     39 }, "precommitHandler + (not provided)");
     40 
     41 promise_test(async t => {
     42  await testUrlDidNotChangeImmediately(e => {
     43    e.intercept({ precommitHandler: async () => {} });
     44    e.intercept({ handler: async () => {} });
     45  });
     46 }, "precommitHandler + handler");
     47 
     48 promise_test(async t => {
     49  await testUrlDidNotChangeImmediately(e => {
     50    e.intercept({ handler: async () => {} });
     51    e.intercept({ precommitHandler: async () => {} });
     52  });
     53 }, "handler + precommitHandler");
     54 
     55 promise_test(async t => {
     56  await testUrlDidChangeImmediately(e => {
     57    e.intercept({ handler: async () => {} });
     58    e.intercept();
     59  });
     60 }, "handler + (not provided)");
     61 
     62 promise_test(async t => {
     63  await testUrlDidChangeImmediately(e => {
     64    e.intercept({ handler: async () => {} });
     65    e.intercept({ handler: async () => {} });
     66  });
     67 }, "handler + handler");
     68 
     69 promise_test(async t => {
     70  await testUrlDidNotChangeImmediately(e => {
     71    e.intercept();
     72    e.intercept({ precommitHandler: async () => {} });
     73  });
     74 }, "(not provided) + precommitHandler");
     75 
     76 promise_test(async t => {
     77  await testUrlDidChangeImmediately(e => {
     78    e.intercept();
     79    e.intercept({ handler: async () => {} });
     80  });
     81 }, "(not provided) + handler");
     82 </script>
     83 </body>