summaryrefslogtreecommitdiffstats
path: root/browser/components/customizableui/test/browser_970511_undo_restore_default.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /browser/components/customizableui/test/browser_970511_undo_restore_default.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'browser/components/customizableui/test/browser_970511_undo_restore_default.js')
-rw-r--r--browser/components/customizableui/test/browser_970511_undo_restore_default.js128
1 files changed, 128 insertions, 0 deletions
diff --git a/browser/components/customizableui/test/browser_970511_undo_restore_default.js b/browser/components/customizableui/test/browser_970511_undo_restore_default.js
new file mode 100644
index 000000000..e7b3ca674
--- /dev/null
+++ b/browser/components/customizableui/test/browser_970511_undo_restore_default.js
@@ -0,0 +1,128 @@
+/* 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";
+
+requestLongerTimeout(2);
+
+// Restoring default should reset theme and show an "undo" option which undoes the restoring operation.
+add_task(function*() {
+ let homeButtonId = "home-button";
+ CustomizableUI.removeWidgetFromArea(homeButtonId);
+ yield startCustomizing();
+ ok(!CustomizableUI.inDefaultState, "Not in default state to begin with");
+ is(CustomizableUI.getPlacementOfWidget(homeButtonId), null, "Home button is in palette");
+ let undoResetButton = document.getElementById("customization-undo-reset-button");
+ is(undoResetButton.hidden, true, "The undo button is hidden before reset");
+
+ let themesButton = document.getElementById("customization-lwtheme-button");
+ let popup = document.getElementById("customization-lwtheme-menu");
+ let popupShownPromise = popupShown(popup);
+ EventUtils.synthesizeMouseAtCenter(themesButton, {});
+ info("Clicked on themes button");
+ yield popupShownPromise;
+
+ let recommendedHeader = document.getElementById("customization-lwtheme-menu-recommended");
+ let firstLWTheme = recommendedHeader.nextSibling;
+ let firstLWThemeId = firstLWTheme.theme.id;
+ let themeChangedPromise = promiseObserverNotified("lightweight-theme-changed");
+ firstLWTheme.doCommand();
+ info("Clicked on first theme");
+ yield themeChangedPromise;
+
+ is(LightweightThemeManager.currentTheme.id, firstLWThemeId, "Theme changed to first option");
+
+ yield gCustomizeMode.reset();
+
+ ok(CustomizableUI.inDefaultState, "In default state after reset");
+ is(undoResetButton.hidden, false, "The undo button is visible after reset");
+ is(LightweightThemeManager.currentTheme, null, "Theme reset to default");
+
+ yield gCustomizeMode.undoReset()
+
+ is(LightweightThemeManager.currentTheme.id, firstLWThemeId, "Theme has been reset from default to original choice");
+ ok(!CustomizableUI.inDefaultState, "Not in default state after undo-reset");
+ is(undoResetButton.hidden, true, "The undo button is hidden after clicking on the undo button");
+ is(CustomizableUI.getPlacementOfWidget(homeButtonId), null, "Home button is in palette");
+
+ yield gCustomizeMode.reset();
+});
+
+// Performing an action after a reset will hide the reset button.
+add_task(function*() {
+ let homeButtonId = "home-button";
+ CustomizableUI.removeWidgetFromArea(homeButtonId);
+ ok(!CustomizableUI.inDefaultState, "Not in default state to begin with");
+ is(CustomizableUI.getPlacementOfWidget(homeButtonId), null, "Home button is in palette");
+ let undoResetButton = document.getElementById("customization-undo-reset-button");
+ is(undoResetButton.hidden, true, "The undo button is hidden before reset");
+
+ yield gCustomizeMode.reset();
+
+ ok(CustomizableUI.inDefaultState, "In default state after reset");
+ is(undoResetButton.hidden, false, "The undo button is visible after reset");
+
+ CustomizableUI.addWidgetToArea(homeButtonId, CustomizableUI.AREA_PANEL);
+ is(undoResetButton.hidden, true, "The undo button is hidden after another change");
+});
+
+// "Restore defaults", exiting customize, and re-entering shouldn't show the Undo button
+add_task(function*() {
+ let undoResetButton = document.getElementById("customization-undo-reset-button");
+ is(undoResetButton.hidden, true, "The undo button is hidden before a reset");
+ ok(!CustomizableUI.inDefaultState, "The browser should not be in default state");
+ yield gCustomizeMode.reset();
+
+ is(undoResetButton.hidden, false, "The undo button is visible after a reset");
+ yield endCustomizing();
+ yield startCustomizing();
+ is(undoResetButton.hidden, true, "The undo reset button should be hidden after entering customization mode");
+});
+
+// Bug 971626 - Restore Defaults should collapse the Title Bar
+add_task(function*() {
+ if (Services.appinfo.OS != "WINNT" &&
+ Services.appinfo.OS != "Darwin") {
+ return;
+ }
+ let prefName = "browser.tabs.drawInTitlebar";
+ let defaultValue = Services.prefs.getBoolPref(prefName);
+ let restoreDefaultsButton = document.getElementById("customization-reset-button");
+ let titleBarButton = document.getElementById("customization-titlebar-visibility-button");
+ let undoResetButton = document.getElementById("customization-undo-reset-button");
+ ok(CustomizableUI.inDefaultState, "Should be in default state at start of test");
+ ok(restoreDefaultsButton.disabled, "Restore defaults button should be disabled when in default state");
+ is(titleBarButton.hasAttribute("checked"), !defaultValue, "Title bar button should reflect pref value");
+ is(undoResetButton.hidden, true, "Undo reset button should be hidden at start of test");
+
+ Services.prefs.setBoolPref(prefName, !defaultValue);
+ ok(!restoreDefaultsButton.disabled, "Restore defaults button should be enabled when pref changed");
+ is(titleBarButton.hasAttribute("checked"), defaultValue, "Title bar button should reflect changed pref value");
+ ok(!CustomizableUI.inDefaultState, "With titlebar flipped, no longer default");
+ is(undoResetButton.hidden, true, "Undo reset button should be hidden after pref change");
+
+ yield gCustomizeMode.reset();
+ ok(restoreDefaultsButton.disabled, "Restore defaults button should be disabled after reset");
+ is(titleBarButton.hasAttribute("checked"), !defaultValue, "Title bar button should reflect default value after reset");
+ is(Services.prefs.getBoolPref(prefName), defaultValue, "Reset should reset drawInTitlebar");
+ ok(CustomizableUI.inDefaultState, "In default state after titlebar reset");
+ is(undoResetButton.hidden, false, "Undo reset button should be visible after reset");
+ ok(!undoResetButton.disabled, "Undo reset button should be enabled after reset");
+
+ yield gCustomizeMode.undoReset();
+ ok(!restoreDefaultsButton.disabled, "Restore defaults button should be enabled after undo-reset");
+ is(titleBarButton.hasAttribute("checked"), defaultValue, "Title bar button should reflect undo-reset value");
+ ok(!CustomizableUI.inDefaultState, "No longer in default state after undo");
+ is(Services.prefs.getBoolPref(prefName), !defaultValue, "Undo-reset goes back to previous pref value");
+ is(undoResetButton.hidden, true, "Undo reset button should be hidden after undo-reset clicked");
+
+ Services.prefs.clearUserPref(prefName);
+ ok(CustomizableUI.inDefaultState, "In default state after pref cleared");
+ is(undoResetButton.hidden, true, "Undo reset button should be hidden at end of test");
+});
+
+add_task(function* asyncCleanup() {
+ yield gCustomizeMode.reset();
+ yield endCustomizing();
+});