tor-browser

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

test_bug1743353.html (1680B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <meta charset="utf-8">
      5  <title>Test back/forward after pushState</title>
      6  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      7  <link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
      8  <script>
      9    SimpleTest.waitForExplicitFinish();
     10 
     11    async function runTest() {
     12      let bc = SpecialPowers.wrap(BroadcastChannel).unpartitionedTestingChannel("bug1743353");
     13      new Promise((resolve) => {
     14        bc.addEventListener("message", () => {
     15          resolve();
     16        }, { once: true });
     17 
     18        window.open("file_bug1743353.html", "", "noopener");
     19      }).then(() => {
     20        return new Promise(resolve => {
     21          bc.addEventListener("message", () => {
     22            resolve();
     23          }, { once: true });
     24 
     25          bc.postMessage("load");
     26        })
     27      }).then(() => {
     28        return new Promise(resolve => {
     29          let results = [];
     30          bc.addEventListener("message", function listener({ data }) {
     31            results.push(data);
     32            if (results.length == 3) {
     33              bc.removeEventListener("message", listener);
     34              resolve(results);
     35            }
     36          });
     37 
     38          bc.postMessage("back");
     39        });
     40      }).then((results) => {
     41        is(results[0], "pagehide", "First event should be 'pagehide'.");
     42        is(results[1], "unload", "Second event should be 'unload'.");
     43        is(results[2], "pageshow", "Third event should be 'pageshow'.");
     44 
     45        bc.postMessage("close");
     46 
     47        SimpleTest.finish();
     48      });
     49    }
     50  </script>
     51 </head>
     52 <body onload="runTest();">
     53 <p id="display"></p>
     54 <div id="content" style="display: none"></div>
     55 <pre id="test"></pre>
     56 </body>
     57 </html>