Bug 1256399 use temporary addon installation for update tests r=mossop a=testonly

MozReview-Commit-ID: AdjNzZrA79N
This commit is contained in:
Andrew Swan 2016-03-15 05:24:49 -07:00
parent a94a592a9a
commit 9b05494a00
2 changed files with 21 additions and 51 deletions

View File

@ -67,21 +67,22 @@ function runTest() {
file.append(FILE_UPDATE_ARCHIVE);
ok(!file.exists(), file.path + " should not exist");
let addonPrepDir = Services.dirsvc.get(NS_APP_USER_PROFILE_50_DIR,
Ci.nsILocalFile);
addonPrepDir.append(ADDON_PREP_DIR);
// Not being able to remove the directory used to create the test add-ons
// will not adversely affect subsequent tests so wrap it in a try block and
// don't test whether its removal was successful.
try {
removeDirRecursive(addonPrepDir);
}
catch (e) {
logTestInfo("Unable to remove directory. Path: " + addonPrepDir.path +
", Exception: " + e);
}
resetAddons(cleanupRestoreUpdaterBackup);
resetAddons(() => {
let addonPrepDir = Services.dirsvc.get(NS_APP_USER_PROFILE_50_DIR,
Ci.nsILocalFile);
addonPrepDir.append(ADDON_PREP_DIR);
// Not being able to remove the directory used to create the test add-ons
// will not adversely affect subsequent tests so wrap it in a try block and
// don't test whether its removal was successful.
try {
removeDirRecursive(addonPrepDir);
}
catch (e) {
logTestInfo("Unable to remove directory. Path: " + addonPrepDir.path +
", Exception: " + e);
}
cleanupRestoreUpdaterBackup();
});
}
/**

View File

@ -1316,45 +1316,14 @@ function setupAddons(aCallback) {
Services.prefs.setCharPref(PREF_DISABLEDADDONS, disabledAddons.join(" "));
// Install the test add-ons.
let xpiFiles = getTestAddonXPIFiles();
let xpiCount = xpiFiles.length;
let installs = [];
xpiFiles.forEach(function(aFile) {
AddonManager.getInstallForFile(aFile, function(aInstall) {
if (!aInstall) {
throw "No AddonInstall created for " + aFile.path;
}
installs.push(aInstall);
if (--xpiCount == 0) {
let installCount = installs.length;
let installCompleted = function(aInstall) {
aInstall.removeListener(listener);
if (getAddonTestType(aInstall.addon.name) == "userdisabled") {
aInstall.addon.userDisabled = true;
}
if (--installCount == 0) {
setNoUpdateAddonsDisabledState();
}
};
let listener = {
onDownloadFailed: installCompleted,
onDownloadCancelled: installCompleted,
onInstallFailed: installCompleted,
onInstallCancelled: installCompleted,
onInstallEnded: installCompleted
};
installs.forEach(function(aInstall) {
aInstall.addListener(listener);
aInstall.install();
});
let promises = getTestAddonXPIFiles().map(function(aFile) {
return AddonManager.installTemporaryAddon(aFile).then(addon => {
if (getAddonTestType(addon.name) == "userdisabled") {
addon.userDisabled = true;
}
});
});
return Promise.all(promises).then(setNoUpdateAddonsDisabledState);
});
}