Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

"use strict";
const BUTTONID = "test-seenwidget-post-reset";
add_task(async function () {
CustomizableUI.createWidget({
id: BUTTONID,
label: "Test widget seen post reset",
defaultArea: CustomizableUI.AREA_NAVBAR,
});
const kPrefCustomizationState = "browser.uiCustomization.state";
ok(
CustomizableUI.getTestOnlyInternalProp("gSeenWidgets").has(BUTTONID),
"Widget should be seen after createWidget is called."
);
CustomizableUI.reset();
ok(
CustomizableUI.getTestOnlyInternalProp("gSeenWidgets").has(BUTTONID),
"Widget should still be seen after reset."
);
CustomizableUI.addWidgetToArea(BUTTONID, CustomizableUI.AREA_NAVBAR);
gCustomizeMode.removeFromArea(document.getElementById(BUTTONID));
let hasUserValue = Services.prefs.prefHasUserValue(kPrefCustomizationState);
ok(hasUserValue, "Pref should be set right now.");
if (hasUserValue) {
let seenArray = JSON.parse(
Services.prefs.getCharPref(kPrefCustomizationState)
).seen;
isnot(
seenArray.indexOf(BUTTONID),
-1,
"Widget should be in saved 'seen' list."
);
}
});
registerCleanupFunction(function () {
CustomizableUI.destroyWidget(BUTTONID);
CustomizableUI.reset();
});