tenfourfox/toolkit/mozapps/extensions/test/xpcshell/test_isReady.js
Cameron Kaiser c9b2922b70 hello FPR
2017-04-19 00:56:45 -07:00

50 lines
1.7 KiB
JavaScript

createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
function run_test() {
run_next_test();
}
add_task(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);
do_print("Starting manager...");
startupManager();
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;
do_print("Shutting down manager...");
let shutdownPromise = promiseShutdownManager();
equal(AddonManager.isReady, false, "isReady should be false when shutdown commences");
yield shutdownPromise;
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;
do_print("Starting manager again...");
startupManager();
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");
});