"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(); });