tor-browser

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

session-history-test-util.js (1249B)


      1 // Note: Following utility functions are expected to be used from
      2 // session-history-* test files.
      3 
      4 async function waitChannelMessage(testName, uid) {
      5  const result = new Promise((resolve) => {
      6    const testChannel = new PrerenderChannel(testName, uid);
      7    testChannel.addEventListener(
      8      "message",
      9      (e) => {
     10        testChannel.close();
     11        resolve(e.data);
     12      },
     13      { once: true },
     14    );
     15  });
     16  return result;
     17 }
     18 
     19 async function runTestInPrerender(testName, uid) {
     20  const result = waitChannelMessage(`test-channel-${testName}`, uid);
     21 
     22  // Run test in a new window for test isolation.
     23  const prerender = "session-history-prerender.https.html";
     24  window.open(
     25    `./resources/session-history-initiator.https.html?prerender=${prerender}&testName=${testName}&uid=${uid}`,
     26    "_blank",
     27    "noopener",
     28  );
     29  return result;
     30 }
     31 
     32 // This will activate the prerendered context created in runTestInPrerender
     33 // and then run the post-activation variation of `testName`.
     34 async function runTestInActivatedPage(testName, uid) {
     35  const testChannel = new PrerenderChannel(`test-channel-${testName}`, uid);
     36  testChannel.postMessage("activate");
     37  testChannel.close();
     38 
     39  return waitChannelMessage(`test-channel-${testName}`, uid);
     40 }