forked from mirrors/gecko-dev
# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D36042 --HG-- extra : source : d3afcafdce650a6f36cebbc126ee93b17f13cf52
137 lines
3.5 KiB
JavaScript
137 lines
3.5 KiB
JavaScript
/* 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);
|
|
});
|