Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* Any copyright is dedicated to the Public Domain.
"use strict";
add_task(async function test_destroy_uiwidget_allowed() {
let widget_id = "fxms-bmb-button";
CustomizableUI.createWidget({
id: widget_id,
label: "Test widget",
});
Assert.ok(
CustomizableUI.getWidget(widget_id),
"Widget was successfully created"
);
let widgetDestroyed = false;
let listener = {
onWidgetDestroyed() {
widgetDestroyed = true;
},
};
CustomizableUI.addListener(listener);
await SMATestUtils.executeAndValidateAction({
type: "DESTROY_UIWIDGET",
data: {
widget_id,
},
});
CustomizableUI.removeListener(listener);
Assert.ok(
widgetDestroyed,
"destroyWidget called when widget is in the allowlist"
);
});
add_task(async function test_destroy_uiwidget_disallowed() {
let widget_id = "unknown_button";
CustomizableUI.createWidget({
id: widget_id,
label: "Test widget",
});
Assert.ok(
CustomizableUI.getWidget(widget_id),
"Widget was successfully created"
);
let widgetDestroyed = false;
let listener = {
onWidgetDestroyed() {
widgetDestroyed = true;
},
};
CustomizableUI.addListener(listener);
await SMATestUtils.executeAndValidateAction({
type: "DESTROY_UIWIDGET",
data: {
widget_id,
},
});
CustomizableUI.removeListener(listener);
Assert.ok(
!widgetDestroyed,
"destroyWidget not called when widget is not in the allowlist"
);
CustomizableUI.destroyWidget(widget_id);
});