summaryrefslogtreecommitdiffstats
path: root/browser/components/customizableui/test/browser_customizemode_dragspace.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /browser/components/customizableui/test/browser_customizemode_dragspace.js
parentInitial commit. (diff)
downloadfirefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz
firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'browser/components/customizableui/test/browser_customizemode_dragspace.js')
-rw-r--r--browser/components/customizableui/test/browser_customizemode_dragspace.js137
1 files changed, 137 insertions, 0 deletions
diff --git a/browser/components/customizableui/test/browser_customizemode_dragspace.js b/browser/components/customizableui/test/browser_customizemode_dragspace.js
new file mode 100644
index 0000000000..1dab9914d1
--- /dev/null
+++ b/browser/components/customizableui/test/browser_customizemode_dragspace.js
@@ -0,0 +1,137 @@
+/* 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/. */
+
+"use strict";
+
+const PREF_DRAG_SPACE = "browser.tabs.extraDragSpace";
+
+add_task(async function setup() {
+ await startCustomizing();
+});
+
+add_task(async function test_dragspace_checkbox() {
+ let win = document.getElementById("main-window");
+ let checkbox = document.getElementById(
+ "customization-extra-drag-space-checkbox"
+ );
+ is(
+ Services.prefs.getBoolPref(PREF_DRAG_SPACE),
+ false,
+ "Drag space is disabled initially."
+ );
+ ok(!checkbox.checked, "Checkbox state reflects disabled drag space.");
+
+ let dragSpaceEnabled = BrowserTestUtils.waitForAttribute(
+ "extradragspace",
+ win,
+ "true"
+ );
+ EventUtils.synthesizeMouseAtCenter(checkbox, {});
+ await dragSpaceEnabled;
+ is(
+ Services.prefs.getBoolPref(PREF_DRAG_SPACE),
+ true,
+ "Drag space is enabled."
+ );
+
+ EventUtils.synthesizeMouseAtCenter(checkbox, {});
+ await BrowserTestUtils.waitForCondition(
+ () => !win.hasAttribute("extradragspace")
+ );
+ is(
+ Services.prefs.getBoolPref(PREF_DRAG_SPACE),
+ false,
+ "Drag space is disabled."
+ );
+});
+
+add_task(async function test_dragspace_checkbox_disable() {
+ let dragSpaceCheckbox = document.getElementById(
+ "customization-extra-drag-space-checkbox"
+ );
+ let titleBarCheckbox = document.getElementById(
+ "customization-titlebar-visibility-checkbox"
+ );
+
+ ok(!titleBarCheckbox.checked, "Title bar is disabled initially.");
+ ok(
+ !dragSpaceCheckbox.hasAttribute("disabled"),
+ "Drag space checkbox is enabled initially."
+ );
+
+ let checkboxDisabled = BrowserTestUtils.waitForAttribute(
+ "disabled",
+ dragSpaceCheckbox,
+ "true"
+ );
+ EventUtils.synthesizeMouseAtCenter(titleBarCheckbox, {});
+ await checkboxDisabled;
+ info("Checkbox was disabled!");
+
+ EventUtils.synthesizeMouseAtCenter(titleBarCheckbox, {});
+ await BrowserTestUtils.waitForCondition(
+ () => !dragSpaceCheckbox.hasAttribute("disabled")
+ );
+ info("Checkbox was enabled!");
+});
+
+add_task(async function test_dragspace_reset() {
+ let win = document.getElementById("main-window");
+ let checkbox = document.getElementById(
+ "customization-extra-drag-space-checkbox"
+ );
+ is(
+ Services.prefs.getBoolPref(PREF_DRAG_SPACE),
+ false,
+ "Drag space is disabled initially."
+ );
+ ok(!checkbox.checked, "Checkbox state reflects disabled drag space.");
+
+ // Enable dragspace manually.
+ let dragSpaceEnabled = BrowserTestUtils.waitForAttribute(
+ "extradragspace",
+ win,
+ "true"
+ );
+ EventUtils.synthesizeMouseAtCenter(checkbox, {});
+ await dragSpaceEnabled;
+ is(
+ Services.prefs.getBoolPref(PREF_DRAG_SPACE),
+ true,
+ "Drag space is enabled."
+ );
+
+ // Disable dragspace through reset.
+ await gCustomizeMode.reset();
+ await BrowserTestUtils.waitForCondition(
+ () => !win.hasAttribute("extradragspace")
+ );
+ is(
+ Services.prefs.getBoolPref(PREF_DRAG_SPACE),
+ false,
+ "Drag space is disabled."
+ );
+
+ // Undo reset and check that dragspace is enabled again.
+ dragSpaceEnabled = BrowserTestUtils.waitForAttribute(
+ "extradragspace",
+ win,
+ "true"
+ );
+ await gCustomizeMode.undoReset();
+ await dragSpaceEnabled;
+ is(
+ Services.prefs.getBoolPref(PREF_DRAG_SPACE),
+ true,
+ "Drag space is enabled."
+ );
+
+ Services.prefs.clearUserPref(PREF_DRAG_SPACE);
+});
+
+add_task(async function cleanup() {
+ await endCustomizing();
+
+ Services.prefs.clearUserPref(PREF_DRAG_SPACE);
+});