forked from mirrors/gecko-dev
112 lines
4.5 KiB
JavaScript
112 lines
4.5 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
const NON_EMPTY_TAB = "example.com/non-empty";
|
|
const EMPTY_TAB = "about:blank";
|
|
const META_KEY = AppConstants.platform == "macosx" ? "metaKey" : "ctrlKey";
|
|
const ENTER = new KeyboardEvent("keydown", {});
|
|
const ALT_ENTER = new KeyboardEvent("keydown", {altKey: true});
|
|
const CLICK = new MouseEvent("click", {button: 0});
|
|
const META_CLICK = new MouseEvent("click", {button: 0, [META_KEY]: true});
|
|
const MIDDLE_CLICK = new MouseEvent("click", {button: 1});
|
|
|
|
|
|
let old_openintab = Preferences.get("browser.urlbar.openintab");
|
|
registerCleanupFunction(async function() {
|
|
Preferences.set("browser.urlbar.openintab", old_openintab);
|
|
});
|
|
|
|
add_task(async function openInTab() {
|
|
// Open a non-empty tab.
|
|
let tab = gBrowser.selectedTab = await BrowserTestUtils.openNewForegroundTab(gBrowser, NON_EMPTY_TAB);
|
|
|
|
for (let test of [{pref: false, event: ALT_ENTER,
|
|
desc: "Alt+Enter, non-empty tab, default prefs"},
|
|
{pref: false, event: META_CLICK,
|
|
desc: "Meta+click, non-empty tab, default prefs"},
|
|
{pref: false, event: MIDDLE_CLICK,
|
|
desc: "Middle click, non-empty tab, default prefs"},
|
|
{pref: true, event: ENTER,
|
|
desc: "Enter, non-empty tab, openInTab"},
|
|
{pref: true, event: CLICK,
|
|
desc: "Normal click, non-empty tab, openInTab"}]) {
|
|
info(test.desc);
|
|
|
|
Preferences.set("browser.urlbar.openintab", test.pref);
|
|
let where = gURLBar._whereToOpen(test.event);
|
|
is(where, "tab", "URL would be loaded in a new tab");
|
|
}
|
|
|
|
// Clean up.
|
|
BrowserTestUtils.removeTab(tab);
|
|
});
|
|
|
|
add_task(async function keepEmptyTab() {
|
|
// Open an empty tab.
|
|
let tab = gBrowser.selectedTab = await BrowserTestUtils.openNewForegroundTab(gBrowser, EMPTY_TAB);
|
|
|
|
for (let test of [{pref: false, event: META_CLICK,
|
|
desc: "Meta+click, empty tab, default prefs"},
|
|
{pref: false, event: MIDDLE_CLICK,
|
|
desc: "Middle click, empty tab, default prefs"}]) {
|
|
info(test.desc);
|
|
|
|
Preferences.set("browser.urlbar.openintab", test.pref);
|
|
let where = gURLBar._whereToOpen(test.event);
|
|
is(where, "tab", "URL would be loaded in a new tab");
|
|
}
|
|
|
|
// Clean up.
|
|
BrowserTestUtils.removeTab(tab);
|
|
});
|
|
|
|
add_task(async function reuseEmptyTab() {
|
|
// Open an empty tab.
|
|
let tab = gBrowser.selectedTab = await BrowserTestUtils.openNewForegroundTab(gBrowser, EMPTY_TAB);
|
|
|
|
for (let test of [{pref: false, event: ALT_ENTER,
|
|
desc: "Alt+Enter, empty tab, default prefs"},
|
|
{pref: true, event: ENTER,
|
|
desc: "Enter, empty tab, openInTab"},
|
|
{pref: true, event: CLICK,
|
|
desc: "Normal click, empty tab, openInTab"}]) {
|
|
info(test.desc);
|
|
Preferences.set("browser.urlbar.openintab", test.pref);
|
|
let where = gURLBar._whereToOpen(test.event);
|
|
is(where, "current", "New URL would reuse the current empty tab");
|
|
}
|
|
|
|
// Clean up.
|
|
BrowserTestUtils.removeTab(tab);
|
|
});
|
|
|
|
add_task(async function openInCurrentTab() {
|
|
for (let test of [{pref: false, url: NON_EMPTY_TAB, event: ENTER,
|
|
desc: "Enter, non-empty tab, default prefs"},
|
|
{pref: false, url: NON_EMPTY_TAB, event: CLICK,
|
|
desc: "Normal click, non-empty tab, default prefs"},
|
|
{pref: false, url: EMPTY_TAB, event: ENTER,
|
|
desc: "Enter, empty tab, default prefs"},
|
|
{pref: false, url: EMPTY_TAB, event: CLICK,
|
|
desc: "Normal click, empty tab, default prefs"},
|
|
{pref: true, url: NON_EMPTY_TAB, event: ALT_ENTER,
|
|
desc: "Alt+Enter, non-empty tab, openInTab"},
|
|
{pref: true, url: NON_EMPTY_TAB, event: META_CLICK,
|
|
desc: "Meta+click, non-empty tab, openInTab"},
|
|
{pref: true, url: NON_EMPTY_TAB, event: MIDDLE_CLICK,
|
|
desc: "Middle click, non-empty tab, openInTab"}]) {
|
|
info(test.desc);
|
|
|
|
// Open a new tab.
|
|
let tab = gBrowser.selectedTab = await BrowserTestUtils.openNewForegroundTab(gBrowser, test.url);
|
|
|
|
Preferences.set("browser.urlbar.openintab", test.pref);
|
|
let where = gURLBar._whereToOpen(test.event);
|
|
is(where, "current", "URL would open in the current tab");
|
|
|
|
// Clean up.
|
|
BrowserTestUtils.removeTab(tab);
|
|
}
|
|
});
|