tor-browser

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

test-helper.js (1869B)


      1 // META: script=../../html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js
      2 
      3 async function assertNotRestoredReasonsEquals(
      4    remoteContextHelper, url, src, id, name, reasons, children) {
      5  let result = await remoteContextHelper.executeScript(() => {
      6    return performance.getEntriesByType('navigation')[0].notRestoredReasons;
      7  });
      8  assertReasonsStructEquals(
      9      result, url, src, id, name, reasons, children);
     10 }
     11 
     12 function assertReasonsStructEquals(
     13    result, url, src, id, name, reasons, children) {
     14  assert_equals(result.url, url);
     15  assert_equals(result.src, src);
     16  assert_equals(result.id, id);
     17  assert_equals(result.name, name);
     18 
     19  // Reasons should match.
     20  let expected = new Set(reasons);
     21  let actual = new Set(result.reasons);
     22  matchReasons(extractReason(expected), extractReason(actual));
     23 
     24  // Children should match.
     25  if (children == null) {
     26    assert_equals(result.children, children);
     27  } else {
     28    for (let j = 0; j < children.length; j++) {
     29      assertReasonsStructEquals(
     30          result.children[j], children[j].url,
     31          children[j].src, children[j].id, children[j].name, children[j].reasons,
     32          children[j].children);
     33    }
     34  }
     35 }
     36 
     37 function ReasonsInclude(reasons, targetReason) {
     38  for (const reason of reasons) {
     39    if (reason.reason == targetReason) {
     40      return true;
     41    }
     42  }
     43  return false;
     44 }
     45 
     46 // Requires:
     47 // - /websockets/constants.sub.js in the test file and pass the domainPort
     48 // constant here.
     49 async function useWebSocket(remoteContextHelper) {
     50  let return_value = await remoteContextHelper.executeScript((domain) => {
     51    return new Promise((resolve) => {
     52      var webSocketInNotRestoredReasonsTests = new WebSocket(domain + '/echo');
     53      webSocketInNotRestoredReasonsTests.onopen = () => { resolve(42); };
     54    });
     55  }, [SCHEME_DOMAIN_PORT]);
     56  assert_equals(return_value, 42);
     57 }