test_ext_webNavigation_onCommitted.html (1528B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>WebNavigation onCommitted 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() { 17 const extension = ExtensionTestUtils.loadExtension({ 18 manifest: { 19 permissions: ["webNavigation", "tabs"], 20 }, 21 async background() { 22 const url = "http://mochi.test:8888/"; 23 const [tab, tabDetails] = await Promise.all([ 24 browser.tabs.create({url}), 25 new Promise(resolve => { 26 browser.webNavigation.onCommitted.addListener(details => { 27 if (details.url === "about:blank") { 28 // skip initial about:blank 29 return; 30 } 31 resolve(details); 32 }); 33 }), 34 ]); 35 36 browser.test.assertEq(url, tabDetails.url, "webNavigation.onCommitted detects correct url"); 37 browser.test.assertEq(tab.id, tabDetails.tabId, "webNavigation.onCommitted fire for proper tabId"); 38 await browser.tabs.remove(tab.id); 39 browser.test.notifyPass("webNavigation.onCommitted"); 40 }, 41 }); 42 43 await extension.startup(); 44 await extension.awaitFinish("webNavigation.onCommitted"); 45 await extension.unload(); 46 }); 47 </script> 48 49 </body> 50 </html>