summaryrefslogtreecommitdiffstats
path: root/browser/components/customizableui/test/browser_877178_unregisterArea.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/customizableui/test/browser_877178_unregisterArea.js')
-rw-r--r--browser/components/customizableui/test/browser_877178_unregisterArea.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/browser/components/customizableui/test/browser_877178_unregisterArea.js b/browser/components/customizableui/test/browser_877178_unregisterArea.js
new file mode 100644
index 000000000..28037787b
--- /dev/null
+++ b/browser/components/customizableui/test/browser_877178_unregisterArea.js
@@ -0,0 +1,50 @@
+/* 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";
+
+registerCleanupFunction(removeCustomToolbars);
+
+// Sanity checks
+add_task(function sanityChecks() {
+ SimpleTest.doesThrow(() => CustomizableUI.registerArea("@foo"),
+ "Registering areas with an invalid ID should throw.");
+
+ SimpleTest.doesThrow(() => CustomizableUI.registerArea([]),
+ "Registering areas with an invalid ID should throw.");
+
+ SimpleTest.doesThrow(() => CustomizableUI.unregisterArea("@foo"),
+ "Unregistering areas with an invalid ID should throw.");
+
+ SimpleTest.doesThrow(() => CustomizableUI.unregisterArea([]),
+ "Unregistering areas with an invalid ID should throw.");
+
+ SimpleTest.doesThrow(() => CustomizableUI.unregisterArea("unknown"),
+ "Unregistering an area that's not registered should throw.");
+});
+
+// Check areas are loaded with their default placements.
+add_task(function checkLoadedAres() {
+ ok(CustomizableUI.inDefaultState, "Everything should be in its default state.");
+});
+
+// Check registering and unregistering a new area.
+add_task(function checkRegisteringAndUnregistering() {
+ const kToolbarId = "test-registration-toolbar";
+ const kButtonId = "test-registration-button";
+ createDummyXULButton(kButtonId);
+ createToolbarWithPlacements(kToolbarId, ["spring", kButtonId, "spring"]);
+ assertAreaPlacements(kToolbarId,
+ [/customizableui-special-spring\d+/,
+ kButtonId,
+ /customizableui-special-spring\d+/]);
+ ok(!CustomizableUI.inDefaultState, "With a new toolbar it is no longer in a default state.");
+ removeCustomToolbars(); // Will call unregisterArea for us
+ ok(CustomizableUI.inDefaultState, "When the toolbar is unregistered, " +
+ "everything will return to the default state.");
+});
+
+add_task(function* asyncCleanup() {
+ yield resetCustomization();
+});