tor-browser

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

test_ext_tabs_lastAccessed.html (2023B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <meta charset="utf-8">
      5  <title>Tabs lastAccessed Test</title>
      6  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
      7  <script type="text/javascript" src="/tests/SimpleTest/ExtensionTestUtils.js"></script>
      8  <script type="text/javascript" src="head.js"></script>
      9  <link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
     10 </head>
     11 <body>
     12 
     13 <script type="text/javascript">
     14 "use strict";
     15 
     16 add_task(async function testLastAccessed() {
     17  const past = Date.now();
     18 
     19  window.open("https://example.com/?1");
     20  window.open("https://example.com/?2");
     21 
     22  const extension = ExtensionTestUtils.loadExtension({
     23    manifest: {
     24      permissions: ["tabs"],
     25    },
     26    async background() {
     27      browser.test.onMessage.addListener(async function(msg, past) {
     28        if (msg !== "past") {
     29          return;
     30        }
     31 
     32        const [tab1] = await browser.tabs.query({url: "https://example.com/?1"});
     33        const [tab2] = await browser.tabs.query({url: "https://example.com/?2"});
     34 
     35        browser.test.assertTrue(tab1 && tab2, "Expected tabs were found");
     36 
     37        const now = Date.now();
     38 
     39        browser.test.assertTrue(typeof tab1.lastAccessed == "number",
     40                                "tab1 lastAccessed should be a number");
     41 
     42        browser.test.assertTrue(typeof tab2.lastAccessed == "number",
     43                                "tab2 lastAccessed should be a number");
     44 
     45        browser.test.assertTrue(past <= tab1.lastAccessed &&
     46                                tab1.lastAccessed <= tab2.lastAccessed &&
     47                                tab2.lastAccessed <= now,
     48                                "lastAccessed timestamps are recent and in the right order");
     49 
     50        await browser.tabs.remove([tab1.id, tab2.id]);
     51 
     52        browser.test.notifyPass("tabs.lastAccessed");
     53      });
     54    },
     55  });
     56 
     57  await extension.startup();
     58  await extension.sendMessage("past", past);
     59  await extension.awaitFinish("tabs.lastAccessed");
     60  await extension.unload();
     61 });
     62 </script>
     63 
     64 </body>