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