summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/extensions/test/browser/browser_sidebar_preferences_button.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:14:29 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:14:29 +0000
commitfbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8 (patch)
tree4c1ccaf5486d4f2009f9a338a98a83e886e29c97 /toolkit/mozapps/extensions/test/browser/browser_sidebar_preferences_button.js
parentReleasing progress-linux version 124.0.1-1~progress7.99u1. (diff)
downloadfirefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.tar.xz
firefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.zip
Merging upstream version 125.0.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/mozapps/extensions/test/browser/browser_sidebar_preferences_button.js')
-rw-r--r--toolkit/mozapps/extensions/test/browser/browser_sidebar_preferences_button.js73
1 files changed, 73 insertions, 0 deletions
diff --git a/toolkit/mozapps/extensions/test/browser/browser_sidebar_preferences_button.js b/toolkit/mozapps/extensions/test/browser/browser_sidebar_preferences_button.js
new file mode 100644
index 0000000000..91a631bca2
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/browser/browser_sidebar_preferences_button.js
@@ -0,0 +1,73 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+add_task(async function testNoOtherTabsPresent() {
+ let addonsWin = await loadInitialView("extension");
+ let preferencesButton =
+ addonsWin.document.querySelector("#preferencesButton");
+
+ let preferencesPromise = BrowserTestUtils.waitForNewTab(
+ gBrowser,
+ "about:preferences"
+ );
+
+ preferencesButton.click();
+
+ let preferencesTab = await preferencesPromise;
+
+ is(
+ gBrowser.currentURI.spec,
+ "about:preferences",
+ "about:preferences should open if neither it nor about:settings are present"
+ );
+
+ gBrowser.removeTab(preferencesTab);
+
+ await closeView(addonsWin);
+});
+
+async function ensurePreferencesButtonFocusesTab(expectedUri) {
+ let addonsWin = await loadInitialView("extension");
+ let preferencesButton =
+ addonsWin.document.querySelector("#preferencesButton");
+
+ let tabCountBeforeClick = gBrowser.tabCount;
+ preferencesButton.click();
+ let tabCountAfterClick = gBrowser.tabCount;
+
+ is(
+ tabCountAfterClick,
+ tabCountBeforeClick,
+ "preferences button should not open new tabs"
+ );
+ is(
+ gBrowser.currentURI.spec,
+ expectedUri,
+ "the correct tab should be focused"
+ );
+
+ addonsWin.focus();
+ await closeView(addonsWin);
+}
+
+add_task(async function testAboutPreferencesPresent() {
+ await BrowserTestUtils.withNewTab("about:preferences", async () => {
+ await ensurePreferencesButtonFocusesTab("about:preferences");
+ });
+});
+
+add_task(async function testAboutSettingsPresent() {
+ await BrowserTestUtils.withNewTab("about:settings", async () => {
+ await ensurePreferencesButtonFocusesTab("about:settings");
+ });
+});
+
+add_task(async function testAboutSettingsAndPreferencesPresent() {
+ await BrowserTestUtils.withNewTab("about:settings", async () => {
+ await BrowserTestUtils.withNewTab("about:preferences", async () => {
+ await ensurePreferencesButtonFocusesTab("about:settings");
+ });
+ });
+});