1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
/* 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);
});
|