fune/browser/components/customizableui/test/browser_customizemode_dragspace.js
Johann Hofmann 0dbe3971c5 Bug 1349552 - Part 3 - Add a test for drag space in customize mode. r=nhnt11
MozReview-Commit-ID: AiqY1J5WwYo

--HG--
extra : rebase_source : 4fb5cea18653a05f17c80595b48c8f3aae9b0d2a
2017-09-10 20:39:21 +02:00

76 lines
3.3 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);
});