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.js70
1 files changed, 70 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 0000000000..7b171462ff
--- /dev/null
+++ b/browser/components/customizableui/test/browser_877178_unregisterArea.js
@@ -0,0 +1,70 @@
+/* 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(async function asyncCleanup() {
+ await resetCustomization();
+});