зеркало из https://github.com/mozilla/gecko-dev.git
Bug 592888 - Special handling for multixpi install event checking, r=Mossop a=test-only
This commit is contained in:
Родитель
20c3695f52
Коммит
71f7365d9b
|
@ -512,6 +512,19 @@ function getExpectedEvent(aId) {
|
|||
return [event, true];
|
||||
}
|
||||
|
||||
function getExpectedInstall(aAddon) {
|
||||
if (gExpectedInstalls instanceof Array)
|
||||
return gExpectedInstalls.shift();
|
||||
if (!aAddon || !aAddon.id)
|
||||
return gExpectedInstalls["NO_ID"].shift();
|
||||
let id = aAddon.id;
|
||||
if (!(id in gExpectedInstalls) || !(gExpectedInstalls[id] instanceof Array))
|
||||
do_throw("Wasn't expecting events for " + id);
|
||||
if (gExpectedInstalls[id].length == 0)
|
||||
do_throw("Too many events for " + id);
|
||||
return gExpectedInstalls[id].shift();
|
||||
}
|
||||
|
||||
const AddonListener = {
|
||||
onPropertyChanged: function(aAddon, aProperties) {
|
||||
let [event, properties] = getExpectedEvent(aAddon.id);
|
||||
|
@ -603,66 +616,66 @@ const InstallListener = {
|
|||
install.state != AddonManager.STATE_AVAILABLE)
|
||||
do_throw("Bad install state " + install.state);
|
||||
do_check_eq(install.error, 0);
|
||||
do_check_eq("onNewInstall", gExpectedInstalls.shift());
|
||||
do_check_eq("onNewInstall", getExpectedInstall());
|
||||
return check_test_completed(arguments);
|
||||
},
|
||||
|
||||
onDownloadStarted: function(install) {
|
||||
do_check_eq(install.state, AddonManager.STATE_DOWNLOADING);
|
||||
do_check_eq(install.error, 0);
|
||||
do_check_eq("onDownloadStarted", gExpectedInstalls.shift());
|
||||
do_check_eq("onDownloadStarted", getExpectedInstall());
|
||||
return check_test_completed(arguments);
|
||||
},
|
||||
|
||||
onDownloadEnded: function(install) {
|
||||
do_check_eq(install.state, AddonManager.STATE_DOWNLOADED);
|
||||
do_check_eq(install.error, 0);
|
||||
do_check_eq("onDownloadEnded", gExpectedInstalls.shift());
|
||||
do_check_eq("onDownloadEnded", getExpectedInstall());
|
||||
return check_test_completed(arguments);
|
||||
},
|
||||
|
||||
onDownloadFailed: function(install) {
|
||||
do_check_eq(install.state, AddonManager.STATE_DOWNLOAD_FAILED);
|
||||
do_check_eq("onDownloadFailed", gExpectedInstalls.shift());
|
||||
do_check_eq("onDownloadFailed", getExpectedInstall());
|
||||
return check_test_completed(arguments);
|
||||
},
|
||||
|
||||
onDownloadCancelled: function(install) {
|
||||
do_check_eq(install.state, AddonManager.STATE_CANCELLED);
|
||||
do_check_eq(install.error, 0);
|
||||
do_check_eq("onDownloadCancelled", gExpectedInstalls.shift());
|
||||
do_check_eq("onDownloadCancelled", getExpectedInstall());
|
||||
return check_test_completed(arguments);
|
||||
},
|
||||
|
||||
onInstallStarted: function(install) {
|
||||
do_check_eq(install.state, AddonManager.STATE_INSTALLING);
|
||||
do_check_eq(install.error, 0);
|
||||
do_check_eq("onInstallStarted", gExpectedInstalls.shift());
|
||||
do_check_eq("onInstallStarted", getExpectedInstall(install.addon));
|
||||
return check_test_completed(arguments);
|
||||
},
|
||||
|
||||
onInstallEnded: function(install, newAddon) {
|
||||
do_check_eq(install.state, AddonManager.STATE_INSTALLED);
|
||||
do_check_eq(install.error, 0);
|
||||
do_check_eq("onInstallEnded", gExpectedInstalls.shift());
|
||||
do_check_eq("onInstallEnded", getExpectedInstall(install.addon));
|
||||
return check_test_completed(arguments);
|
||||
},
|
||||
|
||||
onInstallFailed: function(install) {
|
||||
do_check_eq(install.state, AddonManager.STATE_INSTALL_FAILED);
|
||||
do_check_eq("onInstallFailed", gExpectedInstalls.shift());
|
||||
do_check_eq("onInstallFailed", getExpectedInstall(install.addon));
|
||||
return check_test_completed(arguments);
|
||||
},
|
||||
|
||||
onInstallCancelled: function(install) {
|
||||
do_check_eq(install.state, AddonManager.STATE_CANCELLED);
|
||||
do_check_eq(install.error, 0);
|
||||
do_check_eq("onInstallCancelled", gExpectedInstalls.shift());
|
||||
do_check_eq("onInstallCancelled", getExpectedInstall(install.addon));
|
||||
return check_test_completed(arguments);
|
||||
},
|
||||
|
||||
onExternalInstall: function(aAddon, existingAddon, aRequiresRestart) {
|
||||
do_check_eq("onExternalInstall", gExpectedInstalls.shift());
|
||||
do_check_eq("onExternalInstall", getExpectedInstall(aAddon));
|
||||
do_check_false(aRequiresRestart);
|
||||
return check_test_completed(arguments);
|
||||
}
|
||||
|
@ -687,8 +700,13 @@ function check_test_completed(aArgs) {
|
|||
if (!gNext)
|
||||
return;
|
||||
|
||||
if (gExpectedInstalls.length > 0)
|
||||
if (gExpectedInstalls instanceof Array &&
|
||||
gExpectedInstalls.length > 0)
|
||||
return;
|
||||
else for each (let installList in gExpectedInstalls) {
|
||||
if (installList.length > 0)
|
||||
return;
|
||||
}
|
||||
|
||||
for (let id in gExpectedEvents) {
|
||||
if (gExpectedEvents[id].length > 0)
|
||||
|
|
|
@ -664,16 +664,24 @@ function run_test_11() {
|
|||
"addon7@tests.mozilla.org": [
|
||||
"onInstalling"
|
||||
]
|
||||
}, [
|
||||
"onInstallStarted",
|
||||
"onInstallEnded",
|
||||
"onInstallStarted",
|
||||
"onInstallEnded",
|
||||
"onInstallStarted",
|
||||
"onInstallEnded",
|
||||
}, {
|
||||
"addon4@tests.mozilla.org": [
|
||||
"onInstallStarted",
|
||||
"onInstallEnded"
|
||||
], check_test_11);
|
||||
],
|
||||
"addon5@tests.mozilla.org": [
|
||||
"onInstallStarted",
|
||||
"onInstallEnded"
|
||||
],
|
||||
"addon6@tests.mozilla.org": [
|
||||
"onInstallStarted",
|
||||
"onInstallEnded"
|
||||
],
|
||||
"addon7@tests.mozilla.org": [
|
||||
"onInstallStarted",
|
||||
"onInstallEnded"
|
||||
]
|
||||
}, check_test_11);
|
||||
|
||||
installs[0].install();
|
||||
installs[1].install();
|
||||
|
@ -741,21 +749,31 @@ function run_test_12() {
|
|||
"addon7@tests.mozilla.org": [
|
||||
"onInstalling"
|
||||
]
|
||||
}, [
|
||||
}, {
|
||||
"NO_ID": [
|
||||
"onDownloadStarted",
|
||||
"onNewInstall",
|
||||
"onNewInstall",
|
||||
"onNewInstall",
|
||||
"onDownloadEnded",
|
||||
"onInstallStarted",
|
||||
"onInstallEnded",
|
||||
"onInstallStarted",
|
||||
"onInstallEnded",
|
||||
"onInstallStarted",
|
||||
"onInstallEnded",
|
||||
"onDownloadEnded"
|
||||
],
|
||||
"addon4@tests.mozilla.org": [
|
||||
"onInstallStarted",
|
||||
"onInstallEnded"
|
||||
], check_test_12);
|
||||
],
|
||||
"addon5@tests.mozilla.org": [
|
||||
"onInstallStarted",
|
||||
"onInstallEnded"
|
||||
],
|
||||
"addon6@tests.mozilla.org": [
|
||||
"onInstallStarted",
|
||||
"onInstallEnded"
|
||||
],
|
||||
"addon7@tests.mozilla.org": [
|
||||
"onInstallStarted",
|
||||
"onInstallEnded"
|
||||
]
|
||||
}, check_test_12);
|
||||
install.install();
|
||||
}, "application/x-xpinstall", null, "Multi Test 4");
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче