summaryrefslogtreecommitdiffstats
path: root/browser/components/customizableui/test/browser_996364_registerArea_different_properties.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/customizableui/test/browser_996364_registerArea_different_properties.js')
-rw-r--r--browser/components/customizableui/test/browser_996364_registerArea_different_properties.js142
1 files changed, 142 insertions, 0 deletions
diff --git a/browser/components/customizableui/test/browser_996364_registerArea_different_properties.js b/browser/components/customizableui/test/browser_996364_registerArea_different_properties.js
new file mode 100644
index 0000000000..7d8ea59150
--- /dev/null
+++ b/browser/components/customizableui/test/browser_996364_registerArea_different_properties.js
@@ -0,0 +1,142 @@
+/* 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";
+
+// Calling CustomizableUI.registerArea twice with no
+// properties should not throw an exception.
+add_task(function () {
+ try {
+ CustomizableUI.registerArea("area-996364", {});
+ CustomizableUI.registerArea("area-996364", {});
+ } catch (ex) {
+ ok(false, ex.message);
+ }
+
+ CustomizableUI.unregisterArea("area-996364", true);
+});
+
+add_task(function () {
+ let exceptionThrown = false;
+ try {
+ CustomizableUI.registerArea("area-996364-2", {
+ type: CustomizableUI.TYPE_TOOLBAR,
+ defaultCollapsed: "false",
+ });
+ } catch (ex) {
+ exceptionThrown = true;
+ }
+ ok(
+ exceptionThrown,
+ "defaultCollapsed is not allowed as an external property"
+ );
+
+ // No need to unregister the area because registration fails.
+});
+
+add_task(function () {
+ let exceptionThrown;
+ try {
+ CustomizableUI.registerArea("area-996364-3", {
+ type: CustomizableUI.TYPE_TOOLBAR,
+ });
+ CustomizableUI.registerArea("area-996364-3", {
+ type: CustomizableUI.TYPE_PANEL,
+ });
+ } catch (ex) {
+ exceptionThrown = ex;
+ }
+ ok(
+ exceptionThrown,
+ "Exception expected, an area cannot change types: " +
+ (exceptionThrown ? exceptionThrown : "[no exception]")
+ );
+
+ CustomizableUI.unregisterArea("area-996364-3", true);
+});
+
+add_task(function () {
+ let exceptionThrown;
+ try {
+ CustomizableUI.registerArea("area-996364-4", {
+ type: CustomizableUI.TYPE_PANEL,
+ });
+ CustomizableUI.registerArea("area-996364-4", {
+ type: CustomizableUI.TYPE_TOOLBAR,
+ });
+ } catch (ex) {
+ exceptionThrown = ex;
+ }
+ ok(
+ exceptionThrown,
+ "Exception expected, an area cannot change types: " +
+ (exceptionThrown ? exceptionThrown : "[no exception]")
+ );
+
+ CustomizableUI.unregisterArea("area-996364-4", true);
+});
+
+add_task(function () {
+ let exceptionThrown;
+ try {
+ CustomizableUI.registerArea("area-996899-1", {
+ anchor: "PanelUI-menu-button",
+ type: CustomizableUI.TYPE_PANEL,
+ defaultPlacements: [],
+ });
+ CustomizableUI.registerArea("area-996899-1", {
+ anchor: "home-button",
+ type: CustomizableUI.TYPE_PANEL,
+ defaultPlacements: [],
+ });
+ } catch (ex) {
+ exceptionThrown = ex;
+ }
+ ok(
+ !exceptionThrown,
+ "Changing anchors shouldn't throw an exception: " +
+ (exceptionThrown ? exceptionThrown : "[no exception]")
+ );
+ CustomizableUI.unregisterArea("area-996899-1", true);
+});
+
+add_task(function () {
+ let exceptionThrown;
+ try {
+ CustomizableUI.registerArea("area-996899-2", {
+ anchor: "PanelUI-menu-button",
+ type: CustomizableUI.TYPE_PANEL,
+ defaultPlacements: [],
+ });
+ CustomizableUI.registerArea("area-996899-2", {
+ anchor: "PanelUI-menu-button",
+ type: CustomizableUI.TYPE_PANEL,
+ defaultPlacements: ["new-window-button"],
+ });
+ } catch (ex) {
+ exceptionThrown = ex;
+ }
+ ok(
+ !exceptionThrown,
+ "Changing defaultPlacements shouldn't throw an exception: " +
+ (exceptionThrown ? exceptionThrown : "[no exception]")
+ );
+ CustomizableUI.unregisterArea("area-996899-2", true);
+});
+
+add_task(function () {
+ let exceptionThrown;
+ try {
+ CustomizableUI.registerArea("area-996899-4", { overflowable: true });
+ CustomizableUI.registerArea("area-996899-4", { overflowable: false });
+ } catch (ex) {
+ exceptionThrown = ex;
+ }
+ ok(
+ exceptionThrown,
+ "Changing 'overflowable' should throw an exception: " +
+ (exceptionThrown ? exceptionThrown : "[no exception]")
+ );
+ CustomizableUI.unregisterArea("area-996899-4", true);
+});