summaryrefslogtreecommitdiffstats
path: root/browser/components/customizableui/test/browser_969427_recreate_destroyed_widget_after_reset.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/customizableui/test/browser_969427_recreate_destroyed_widget_after_reset.js')
-rw-r--r--browser/components/customizableui/test/browser_969427_recreate_destroyed_widget_after_reset.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/browser/components/customizableui/test/browser_969427_recreate_destroyed_widget_after_reset.js b/browser/components/customizableui/test/browser_969427_recreate_destroyed_widget_after_reset.js
new file mode 100644
index 0000000000..8207cd5737
--- /dev/null
+++ b/browser/components/customizableui/test/browser_969427_recreate_destroyed_widget_after_reset.js
@@ -0,0 +1,47 @@
+/* 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";
+
+function getPlacementArea(id) {
+ let placement = CustomizableUI.getPlacementOfWidget(id);
+ return placement && placement.area;
+}
+
+// Check that a destroyed widget recreated after a reset call goes to
+// the navigation bar.
+add_task(function () {
+ const kWidgetId = "test-recreate-after-reset";
+ let spec = {
+ id: kWidgetId,
+ label: "Test re-create after reset.",
+ removable: true,
+ defaultArea: CustomizableUI.AREA_NAVBAR,
+ };
+
+ CustomizableUI.createWidget(spec);
+ is(
+ getPlacementArea(kWidgetId),
+ CustomizableUI.AREA_NAVBAR,
+ "widget is in the navigation bar"
+ );
+
+ CustomizableUI.destroyWidget(kWidgetId);
+ isnot(
+ getPlacementArea(kWidgetId),
+ CustomizableUI.AREA_NAVBAR,
+ "widget removed from the navigation bar"
+ );
+
+ CustomizableUI.reset();
+
+ CustomizableUI.createWidget(spec);
+ is(
+ getPlacementArea(kWidgetId),
+ CustomizableUI.AREA_NAVBAR,
+ "widget recreated and added back to the nav bar"
+ );
+
+ CustomizableUI.destroyWidget(kWidgetId);
+});