Files
tubestation/toolkit/components/nimbus/test/unit/head.js

66 lines
1.5 KiB
JavaScript

"use strict";
const { sinon } = ChromeUtils.importESModule(
"resource://testing-common/Sinon.sys.mjs"
);
const { XPCOMUtils } = ChromeUtils.importESModule(
"resource://gre/modules/XPCOMUtils.sys.mjs"
);
const {
_ExperimentFeature: ExperimentFeature,
ExperimentAPI,
NimbusFeatures,
} = ChromeUtils.importESModule("resource://nimbus/ExperimentAPI.sys.mjs");
const { NimbusTestUtils } = ChromeUtils.importESModule(
"resource://testing-common/NimbusTestUtils.sys.mjs"
);
ChromeUtils.defineESModuleGetters(this, {
ObjectUtils: "resource://gre/modules/ObjectUtils.sys.mjs",
RegionTestUtils: "resource://testing-common/RegionTestUtils.sys.mjs",
});
NimbusTestUtils.init(this);
add_setup(function () {
do_get_profile();
});
function assertEmptyStore(store) {
NimbusTestUtils.assert.storeIsEmpty(store);
}
/**
* Assert the manager has no active pref observers.
*/
function assertNoObservers(manager) {
Assert.equal(
manager._prefs.size,
0,
"There should be no active pref observers"
);
Assert.equal(
manager._prefsBySlug.size,
0,
"There should be no active pref observers"
);
Assert.equal(
manager._prefFlips._registeredPrefCount,
0,
"There should be no prefFlips pref observers"
);
}
/**
* Remove all pref observers on the given ExperimentManager.
*/
function removePrefObservers(manager) {
for (const [name, entry] of manager._prefs.entries()) {
Services.prefs.removeObserver(name, entry.observer);
}
manager._prefs.clear();
manager._prefsBySlug.clear();
}