diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /toolkit/mozapps/extensions/test/xpcshell/test_install_from_sources.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'toolkit/mozapps/extensions/test/xpcshell/test_install_from_sources.js')
-rw-r--r-- | toolkit/mozapps/extensions/test/xpcshell/test_install_from_sources.js | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_install_from_sources.js b/toolkit/mozapps/extensions/test/xpcshell/test_install_from_sources.js new file mode 100644 index 000000000..18bb7d74e --- /dev/null +++ b/toolkit/mozapps/extensions/test/xpcshell/test_install_from_sources.js @@ -0,0 +1,80 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +const ID = "bootstrap1@tests.mozilla.org"; +createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "42"); +startupManager(); + +BootstrapMonitor.init(); + +// Partial list of bootstrap reasons from XPIProvider.jsm +const BOOTSTRAP_REASONS = { + ADDON_INSTALL: 5, + ADDON_UPGRADE: 7, + ADDON_DOWNGRADE: 8, +}; + +// Install an unsigned add-on with no existing add-on present. +// Restart and make sure it is still around. +add_task(function*() { + let extInstallCalled = false; + AddonManager.addInstallListener({ + onExternalInstall: (aInstall) => { + do_check_eq(aInstall.id, ID); + do_check_eq(aInstall.version, "1.0"); + extInstallCalled = true; + }, + }); + + let installingCalled = false; + let installedCalled = false; + AddonManager.addAddonListener({ + onInstalling: (aInstall) => { + do_check_eq(aInstall.id, ID); + do_check_eq(aInstall.version, "1.0"); + installingCalled = true; + }, + onInstalled: (aInstall) => { + do_check_eq(aInstall.id, ID); + do_check_eq(aInstall.version, "1.0"); + installedCalled = true; + }, + onInstallStarted: (aInstall) => { + do_throw("onInstallStarted called unexpectedly"); + } + }); + + yield AddonManager.installAddonFromSources(do_get_file("data/from_sources/")); + + do_check_true(extInstallCalled); + do_check_true(installingCalled); + do_check_true(installedCalled); + + let install = BootstrapMonitor.checkAddonInstalled(ID, "1.0"); + equal(install.reason, BOOTSTRAP_REASONS.ADDON_INSTALL); + BootstrapMonitor.checkAddonStarted(ID, "1.0"); + + let addon = yield promiseAddonByID(ID); + + do_check_neq(addon, null); + do_check_eq(addon.version, "1.0"); + do_check_eq(addon.name, "Test Bootstrap 1"); + do_check_true(addon.isCompatible); + do_check_false(addon.appDisabled); + do_check_true(addon.isActive); + do_check_eq(addon.type, "extension"); + do_check_eq(addon.signedState, mozinfo.addon_signing ? AddonManager.SIGNEDSTATE_SIGNED : AddonManager.SIGNEDSTATE_NOT_REQUIRED); + + yield promiseRestartManager(); + + install = BootstrapMonitor.checkAddonInstalled(ID, "1.0"); + equal(install.reason, BOOTSTRAP_REASONS.ADDON_INSTALL); + BootstrapMonitor.checkAddonStarted(ID, "1.0"); + + addon = yield promiseAddonByID(ID); + do_check_neq(addon, null); + + yield promiseRestartManager(); +}); + |