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
|
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
function index(tab) {
return Array.prototype.indexOf.call(gBrowser.tabs, tab);
}
async function testNewTabPosition(expectedPosition, modifiers = {}) {
let opening = BrowserTestUtils.waitForNewTab(
gBrowser,
"http://mochi.test:8888/"
);
BrowserTestUtils.synthesizeMouseAtCenter(
"#link",
modifiers,
gBrowser.selectedBrowser
);
let newtab = await opening;
is(index(newtab), expectedPosition, "clicked tab is in correct position");
return newtab;
}
// Test that a tab opened from a pinned tab is not in the pinned region.
add_task(async function test_pinned_content_click() {
let testUri =
'data:text/html;charset=utf-8,<a href="http://mochi.test:8888/" target="_blank" id="link">link</a>';
let tabs = [
gBrowser.selectedTab,
await BrowserTestUtils.openNewForegroundTab(gBrowser, testUri),
BrowserTestUtils.addTab(gBrowser),
];
gBrowser.pinTab(tabs[1]);
gBrowser.pinTab(tabs[2]);
// First test new active tabs open at the start of non-pinned tabstrip.
let newtab1 = await testNewTabPosition(2);
// Switch back to our test tab.
await BrowserTestUtils.switchTab(gBrowser, tabs[1]);
let newtab2 = await testNewTabPosition(2);
gBrowser.removeTab(newtab1);
gBrowser.removeTab(newtab2);
// Second test new background tabs open in order.
let modifiers =
AppConstants.platform == "macosx" ? { metaKey: true } : { ctrlKey: true };
await BrowserTestUtils.switchTab(gBrowser, tabs[1]);
newtab1 = await testNewTabPosition(2, modifiers);
newtab2 = await testNewTabPosition(3, modifiers);
gBrowser.removeTab(tabs[1]);
gBrowser.removeTab(tabs[2]);
gBrowser.removeTab(newtab1);
gBrowser.removeTab(newtab2);
});
|