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>