browser/components/customizableui/test/browser_970511_undo_restore_default.js

Wed, 31 Dec 2014 13:27:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 13:27:57 +0100
branch
TOR_BUG_3246
changeset 6
8bccb770b82d
permissions
-rw-r--r--

Ignore runtime configuration files generated during quality assurance.

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 "use strict";
     7 // Restoring default should show an "undo" option which undoes the restoring operation.
     8 add_task(function() {
     9   let homeButtonId = "home-button";
    10   CustomizableUI.removeWidgetFromArea(homeButtonId);
    11   yield startCustomizing();
    12   ok(!CustomizableUI.inDefaultState, "Not in default state to begin with");
    13   is(CustomizableUI.getPlacementOfWidget(homeButtonId), null, "Home button is in palette");
    14   let undoResetButton = document.getElementById("customization-undo-reset-button");
    15   is(undoResetButton.hidden, true, "The undo button is hidden before reset");
    17   yield gCustomizeMode.reset();
    19   ok(CustomizableUI.inDefaultState, "In default state after reset");
    20   is(undoResetButton.hidden, false, "The undo button is visible after reset");
    22   undoResetButton.click();
    23   yield waitForCondition(function() !gCustomizeMode.resetting);
    24   ok(!CustomizableUI.inDefaultState, "Not in default state after reset-undo");
    25   is(undoResetButton.hidden, true, "The undo button is hidden after clicking on the undo button");
    26   is(CustomizableUI.getPlacementOfWidget(homeButtonId), null, "Home button is in palette");
    28   yield gCustomizeMode.reset();
    29 });
    31 // Performing an action after a reset will hide the reset button.
    32 add_task(function() {
    33   let homeButtonId = "home-button";
    34   CustomizableUI.removeWidgetFromArea(homeButtonId);
    35   ok(!CustomizableUI.inDefaultState, "Not in default state to begin with");
    36   is(CustomizableUI.getPlacementOfWidget(homeButtonId), null, "Home button is in palette");
    37   let undoResetButton = document.getElementById("customization-undo-reset-button");
    38   is(undoResetButton.hidden, true, "The undo button is hidden before reset");
    40   yield gCustomizeMode.reset();
    42   ok(CustomizableUI.inDefaultState, "In default state after reset");
    43   is(undoResetButton.hidden, false, "The undo button is visible after reset");
    45   CustomizableUI.addWidgetToArea(homeButtonId, CustomizableUI.AREA_PANEL);
    46   is(undoResetButton.hidden, true, "The undo button is hidden after another change");
    47 });
    49 // "Restore defaults", exiting customize, and re-entering shouldn't show the Undo button
    50 add_task(function() {
    51   let undoResetButton = document.getElementById("customization-undo-reset-button");
    52   is(undoResetButton.hidden, true, "The undo button is hidden before a reset");
    53   ok(!CustomizableUI.inDefaultState, "The browser should not be in default state");
    54   yield gCustomizeMode.reset();
    56   is(undoResetButton.hidden, false, "The undo button is visible after a reset");
    57   yield endCustomizing();
    58   yield startCustomizing();
    59   is(undoResetButton.hidden, true, "The undo reset button should be hidden after entering customization mode");
    60 });
    62 // Bug 971626 - Restore Defaults should collapse the Title Bar
    63 add_task(function() {
    64   if (Services.appinfo.OS != "WINNT" &&
    65       Services.appinfo.OS != "Darwin") {
    66     return;
    67   }
    68   let prefName = "browser.tabs.drawInTitlebar";
    69   let defaultValue = Services.prefs.getBoolPref(prefName);
    70   let restoreDefaultsButton = document.getElementById("customization-reset-button");
    71   let titleBarButton = document.getElementById("customization-titlebar-visibility-button");
    72   let undoResetButton = document.getElementById("customization-undo-reset-button");
    73   ok(CustomizableUI.inDefaultState, "Should be in default state at start of test");
    74   ok(restoreDefaultsButton.disabled, "Restore defaults button should be disabled when in default state");
    75   is(titleBarButton.hasAttribute("checked"), !defaultValue, "Title bar button should reflect pref value");
    76   is(undoResetButton.hidden, true, "Undo reset button should be hidden at start of test");
    78   Services.prefs.setBoolPref(prefName, !defaultValue);
    79   ok(!restoreDefaultsButton.disabled, "Restore defaults button should be enabled when pref changed");
    80   is(titleBarButton.hasAttribute("checked"), defaultValue, "Title bar button should reflect changed pref value");
    81   ok(!CustomizableUI.inDefaultState, "With titlebar flipped, no longer default");
    82   is(undoResetButton.hidden, true, "Undo reset button should be hidden after pref change");
    84   yield gCustomizeMode.reset();
    85   ok(restoreDefaultsButton.disabled, "Restore defaults button should be disabled after reset");
    86   is(titleBarButton.hasAttribute("checked"), !defaultValue, "Title bar button should reflect default value after reset");
    87   is(Services.prefs.getBoolPref(prefName), defaultValue, "Reset should reset drawInTitlebar");
    88   ok(CustomizableUI.inDefaultState, "In default state after titlebar reset");
    89   is(undoResetButton.hidden, false, "Undo reset button should be visible after reset");
    90   ok(!undoResetButton.disabled, "Undo reset button should be enabled after reset");
    92   yield gCustomizeMode.undoReset();
    93   ok(!restoreDefaultsButton.disabled, "Restore defaults button should be enabled after undo-reset");
    94   is(titleBarButton.hasAttribute("checked"), defaultValue, "Title bar button should reflect undo-reset value");
    95   ok(!CustomizableUI.inDefaultState, "No longer in default state after undo");
    96   is(Services.prefs.getBoolPref(prefName), !defaultValue, "Undo-reset goes back to previous pref value");
    97   is(undoResetButton.hidden, true, "Undo reset button should be hidden after undo-reset clicked");
    99   Services.prefs.clearUserPref(prefName);
   100   ok(CustomizableUI.inDefaultState, "In default state after pref cleared");
   101   is(undoResetButton.hidden, true, "Undo reset button should be hidden at end of test");
   102 });
   104 add_task(function asyncCleanup() {
   105   yield gCustomizeMode.reset();
   106   yield endCustomizing();
   107 });

mercurial