browser_bug462673.js (1765B)
1 add_task(async function () { 2 var win = openDialog( 3 AppConstants.BROWSER_CHROME_URL, 4 "_blank", 5 "chrome,all,dialog=no" 6 ); 7 await SimpleTest.promiseFocus(win); 8 9 let tab = win.gBrowser.tabs[0]; 10 await BrowserTestUtils.loadURIString({ 11 browser: tab.linkedBrowser, 12 uriString: getRootDirectory(gTestPath) + "test_bug462673.html", 13 }); 14 15 is( 16 win.gBrowser.browsers.length, 17 2, 18 "test_bug462673.html has opened a second tab" 19 ); 20 is( 21 win.gBrowser.selectedTab, 22 tab.nextElementSibling, 23 "dependent tab is selected" 24 ); 25 win.gBrowser.removeTab(tab); 26 27 // Closing a tab will also close its parent chrome window, but async 28 await BrowserTestUtils.domWindowClosed(win); 29 }); 30 31 add_task(async function () { 32 var win = openDialog( 33 AppConstants.BROWSER_CHROME_URL, 34 "_blank", 35 "chrome,all,dialog=no" 36 ); 37 await SimpleTest.promiseFocus(win); 38 39 let tab = win.gBrowser.tabs[0]; 40 await BrowserTestUtils.loadURIString({ 41 browser: tab.linkedBrowser, 42 uriString: getRootDirectory(gTestPath) + "test_bug462673.html", 43 }); 44 45 var newTab = BrowserTestUtils.addTab(win.gBrowser); 46 var newBrowser = newTab.linkedBrowser; 47 win.gBrowser.removeTab(tab); 48 ok(!win.closed, "Window stays open"); 49 if (!win.closed) { 50 is(win.gBrowser.tabs.length, 1, "Window has one tab"); 51 is(win.gBrowser.browsers.length, 1, "Window has one browser"); 52 is(win.gBrowser.selectedTab, newTab, "Remaining tab is selected"); 53 is( 54 win.gBrowser.selectedBrowser, 55 newBrowser, 56 "Browser for remaining tab is selected" 57 ); 58 is( 59 win.gBrowser.tabbox.selectedPanel, 60 newBrowser.parentNode.parentNode.parentNode, 61 "Panel for remaining tab is selected" 62 ); 63 } 64 65 await promiseWindowClosed(win); 66 });