/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /** * This tests that switch to tab from a blank tab switches and then closes * the blank tab. */ "use strict"; add_task(async function test_switchToTab_closes() { let testURL = "http://example.org/browser/browser/components/urlbar/tests/browser/dummy_page.html"; // Open the base tab let baseTab = await BrowserTestUtils.openNewForegroundTab(gBrowser, testURL); if (baseTab.linkedBrowser.currentURI.spec == "about:blank") { return; } // Open a blank tab to start the test from. let testTab = await BrowserTestUtils.openNewForegroundTab(gBrowser); // Functions for TabClose and TabSelect let tabClosePromise = BrowserTestUtils.waitForEvent( gBrowser.tabContainer, "TabClose", false, event => { return event.originalTarget == testTab; } ); let tabSelectPromise = BrowserTestUtils.waitForEvent( gBrowser.tabContainer, "TabSelect", false, event => { return event.originalTarget == baseTab; } ); await UrlbarTestUtils.promiseAutocompleteResultPopup({ window, value: "dummy", }); // The first result is the heuristic, the second will be the switch to tab. let element = await UrlbarTestUtils.waitForAutocompleteResultAt(window, 1); EventUtils.synthesizeMouseAtCenter(element, {}, window); await Promise.all([tabSelectPromise, tabClosePromise]); // Confirm that the selected tab is now the base tab Assert.equal( gBrowser.selectedTab, baseTab, "Should have switched to the correct tab" ); gBrowser.removeTab(baseTab); });