Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
add_task(async function () {
equal(AddonManager.isReady, false, "isReady should be false before startup");
let gotStartupEvent = false;
let gotShutdownEvent = false;
let listener = {
onStartup() {
gotStartupEvent = true;
},
onShutdown() {
gotShutdownEvent = true;
},
};
AddonManager.addManagerListener(listener);
info("Starting manager...");
await promiseStartupManager();
equal(AddonManager.isReady, true, "isReady should be true after startup");
equal(
gotStartupEvent,
true,
"Should have seen onStartup event after startup"
);
equal(
gotShutdownEvent,
false,
"Should not have seen onShutdown event before shutdown"
);
gotStartupEvent = false;
gotShutdownEvent = false;
info("Shutting down manager...");
await promiseShutdownManager();
equal(AddonManager.isReady, false, "isReady should be false after shutdown");
equal(
gotStartupEvent,
false,
"Should not have seen onStartup event after shutdown"
);
equal(
gotShutdownEvent,
true,
"Should have seen onShutdown event after shutdown"
);
AddonManager.addManagerListener(listener);
gotStartupEvent = false;
gotShutdownEvent = false;
info("Starting manager again...");
await promiseStartupManager();
equal(
AddonManager.isReady,
true,
"isReady should be true after repeat startup"
);
equal(
gotStartupEvent,
true,
"Should have seen onStartup event after repeat startup"
);
equal(
gotShutdownEvent,
false,
"Should not have seen onShutdown event before shutdown, following repeat startup"
);
});