Bug 1197617 - Fix addon signing tests to work when addon signing is disabled. r=Mossop

This commit is contained in:
Philipp Kewisch 2015-09-01 12:48:12 +02:00
parent d0adc33307
commit 25d03cdace
4 changed files with 11 additions and 9 deletions

View File

@ -471,7 +471,7 @@ function checkActiveAddon(data){
hasBinaryComponents: "boolean",
installDay: "number",
updateDay: "number",
signedState: "number",
signedState: mozinfo.addon_signing ? "number" : "undefined",
};
for (let f in EXPECTED_ADDON_FIELDS_TYPES) {
@ -896,7 +896,7 @@ add_task(function* test_addonsAndPlugins() {
hasBinaryComponents: false,
installDay: ADDON_INSTALL_DATE,
updateDay: ADDON_INSTALL_DATE,
signedState: AddonManager.SIGNEDSTATE_MISSING,
signedState: mozinfo.addon_signing ? AddonManager.SIGNEDSTATE_MISSING : AddonManager.SIGNEDSTATE_NOT_REQUIRED,
};
const EXPECTED_PLUGIN_DATA = {
@ -960,7 +960,7 @@ add_task(function* test_signedAddon() {
hasBinaryComponents: false,
installDay: ADDON_INSTALL_DATE,
updateDay: ADDON_INSTALL_DATE,
signedState: AddonManager.SIGNEDSTATE_SIGNED,
signedState: mozinfo.addon_signing ? AddonManager.SIGNEDSTATE_SIGNED : AddonManager.SIGNEDSTATE_NOT_REQUIRED,
};
// Set the clock in the future so our changes don't get throttled.

View File

@ -2971,6 +2971,8 @@ this.AddonManager = {
// Constants for Addon.signedState. Any states that should cause an add-on
// to be unusable in builds that require signing should have negative values.
// Add-on signing is not required, e.g. because the pref is disabled.
SIGNEDSTATE_NOT_REQUIRED: undefined,
// Add-on is signed but signature verification has failed.
SIGNEDSTATE_BROKEN: -2,
// Add-on may be signed but by an certificate that doesn't chain to our

View File

@ -1486,7 +1486,7 @@ function getSignedStatus(aRv, aCert, aExpectedID) {
*/
function verifyZipSignedState(aFile, aAddon) {
if (!ADDON_SIGNING || !SIGNED_TYPES.has(aAddon.type))
return Promise.resolve(undefined);
return Promise.resolve(AddonManager.SIGNEDSTATE_NOT_REQUIRED);
let certDB = Cc["@mozilla.org/security/x509certdb;1"]
.getService(Ci.nsIX509CertDB);
@ -1516,7 +1516,7 @@ function verifyZipSignedState(aFile, aAddon) {
*/
function verifyDirSignedState(aDir, aAddon) {
if (!ADDON_SIGNING || !SIGNED_TYPES.has(aAddon.type))
return Promise.resolve(undefined);
return Promise.resolve(AddonManager.SIGNEDSTATE_NOT_REQUIRED);
let certDB = Cc["@mozilla.org/security/x509certdb;1"]
.getService(Ci.nsIX509CertDB);
@ -5614,7 +5614,7 @@ AddonInstall.prototype = {
}
}
else if (this.addon.signedState == AddonManager.SIGNEDSTATE_UNKNOWN ||
this.addon.signedState == undefined) {
this.addon.signedState == AddonManager.SIGNEDSTATE_NOT_REQUIRED) {
// Check object signing certificate, if any
let x509 = zipreader.getSigningCert(null);
if (x509) {

View File

@ -53,7 +53,7 @@ add_task(function*() {
do_check_false(addon.appDisabled);
do_check_true(addon.isActive);
do_check_eq(addon.type, "extension");
do_check_eq(addon.signedState, AddonManager.SIGNEDSTATE_MISSING);
do_check_eq(addon.signedState, mozinfo.addon_signing ? AddonManager.SIGNEDSTATE_MISSING : AddonManager.SIGNEDSTATE_NOT_REQUIRED);
// Should persist through a restart
yield promiseShutdownManager();
@ -75,7 +75,7 @@ add_task(function*() {
do_check_false(addon.appDisabled);
do_check_true(addon.isActive);
do_check_eq(addon.type, "extension");
do_check_eq(addon.signedState, AddonManager.SIGNEDSTATE_MISSING);
do_check_eq(addon.signedState, mozinfo.addon_signing ? AddonManager.SIGNEDSTATE_MISSING : AddonManager.SIGNEDSTATE_NOT_REQUIRED);
let file = getFileForAddon(profileDir, ID);
do_check_true(file.exists());
@ -122,7 +122,7 @@ add_task(function*() {
do_check_false(addon.appDisabled);
do_check_true(addon.isActive);
do_check_eq(addon.type, "extension");
do_check_eq(addon.signedState, AddonManager.SIGNEDSTATE_MISSING);
do_check_eq(addon.signedState, mozinfo.addon_signing ? AddonManager.SIGNEDSTATE_MISSING : AddonManager.SIGNEDSTATE_NOT_REQUIRED);
let file = getFileForAddon(profileDir, ID);
do_check_true(file.exists());