66 lines
1.5 KiB
JavaScript
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();
|
|
}
|