55 lines
1.3 KiB
JavaScript
55 lines
1.3 KiB
JavaScript
"use strict";
|
|
|
|
AddonTestUtils.init(this);
|
|
AddonTestUtils.overrideCertDB();
|
|
AddonTestUtils.createAppInfo(
|
|
"xpcshell@tests.mozilla.org",
|
|
"XPCShell",
|
|
"1",
|
|
"1"
|
|
);
|
|
|
|
// Tests that startupData is persisted and is available at startup
|
|
add_task(async function test_startupData() {
|
|
await AddonTestUtils.promiseStartupManager();
|
|
|
|
let wrapper = ExtensionTestUtils.loadExtension({
|
|
useAddonManager: "permanent",
|
|
});
|
|
await wrapper.startup();
|
|
|
|
let { extension } = wrapper;
|
|
|
|
deepEqual(
|
|
extension.startupData,
|
|
{},
|
|
"startupData for a new extension defaults to empty object"
|
|
);
|
|
|
|
const DATA = { test: "i am some startup data" };
|
|
extension.startupData = DATA;
|
|
extension.saveStartupData();
|
|
|
|
await AddonTestUtils.promiseRestartManager();
|
|
await wrapper.startupPromise;
|
|
|
|
({ extension } = wrapper);
|
|
deepEqual(extension.startupData, DATA, "startupData is present on restart");
|
|
|
|
const DATA2 = { other: "this is different data" };
|
|
extension.startupData = DATA2;
|
|
extension.saveStartupData();
|
|
|
|
await AddonTestUtils.promiseRestartManager();
|
|
await wrapper.startupPromise;
|
|
|
|
({ extension } = wrapper);
|
|
deepEqual(
|
|
extension.startupData,
|
|
DATA2,
|
|
"updated startupData is present on restart"
|
|
);
|
|
|
|
await wrapper.unload();
|
|
await AddonTestUtils.promiseShutdownManager();
|
|
});
|