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:13:27 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:13:27 +0000
commit40a355a42d4a9444dc753c04c6608dade2f06a23 (patch)
tree871fc667d2de662f171103ce5ec067014ef85e61 /toolkit/mozapps/extensions/test/browser/browser_sidebar_preferences_button.js
parentAdding upstream version 124.0.1. (diff)
downloadfirefox-adbda400be353e676059e335c3c0aaf99e719475.tar.xz
firefox-adbda400be353e676059e335c3c0aaf99e719475.zip
Adding upstream version 125.0.1.upstream/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");
+ });
+ });
+});