fune/browser/components/customizableui/test/browser_customizemode_dragspace.js
Victor Porof 1f830c96da Bug 1561435 - Format browser/components/, a=automatic-formatting
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D36042

--HG--
extra : source : d3afcafdce650a6f36cebbc126ee93b17f13cf52
2019-07-05 09:53:32 +02:00

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);
});