Wed, 31 Dec 2014 13:27:57 +0100
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 });