mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
90 lines
2.9 KiB
JavaScript
90 lines
2.9 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
|
*/
|
|
|
|
/**
|
|
* Bug 595059 - begin download of a complete update after a failure applying a
|
|
* partial update.
|
|
*/
|
|
|
|
const TEST_ID = "bug595059";
|
|
|
|
function run_test() {
|
|
do_test_pending();
|
|
do_register_cleanup(end_test);
|
|
|
|
adjustGeneralPaths();
|
|
|
|
logTestInfo("testing Bug 595059 - calling nsIUpdatePrompt::showUpdateError " +
|
|
"should call getNewPrompter and alert on the object returned " +
|
|
"by getNewPrompter when the update.state = " + STATE_FAILED +
|
|
" and the update.errorCode = " + WRITE_ERROR);
|
|
|
|
removeUpdateDirsAndFiles();
|
|
|
|
let registrar = Components.manager.QueryInterface(AUS_Ci.nsIComponentRegistrar);
|
|
registrar.registerFactory(Components.ID("{1dfeb90a-2193-45d5-9cb8-864928b2af55}"),
|
|
"Fake Window Watcher",
|
|
"@mozilla.org/embedcomp/window-watcher;1",
|
|
WindowWatcherFactory);
|
|
|
|
standardInit();
|
|
|
|
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
|
let url = URL_HOST + URL_PATH + "/complete.mar";
|
|
let patches = getLocalPatchString("complete", url, null, null, null, null,
|
|
STATE_FAILED);
|
|
let updates = getLocalUpdateString(patches, null, null, "version 1.0", "1.0",
|
|
null, null, null, null, url);
|
|
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
|
writeStatusFile(STATE_FAILED);
|
|
|
|
reloadUpdateManagerData();
|
|
|
|
let update = gUpdateManager.activeUpdate;
|
|
update.errorCode = WRITE_ERROR;
|
|
let prompter = AUS_Cc["@mozilla.org/updates/update-prompt;1"].
|
|
createInstance(AUS_Ci.nsIUpdatePrompt);
|
|
prompter.showUpdateError(update);
|
|
}
|
|
|
|
function end_test() {
|
|
let registrar = Components.manager.QueryInterface(AUS_Ci.nsIComponentRegistrar);
|
|
registrar.unregisterFactory(Components.ID("{1dfeb90a-2193-45d5-9cb8-864928b2af55}"),
|
|
WindowWatcherFactory);
|
|
cleanUp();
|
|
}
|
|
|
|
var WindowWatcher = {
|
|
getNewPrompter: function(aParent) {
|
|
do_check_eq(aParent, null);
|
|
return {
|
|
alert: function(aTitle, aText) {
|
|
let title = getString("updaterIOErrorTitle");
|
|
do_check_eq(aTitle, title);
|
|
let text = gUpdateBundle.formatStringFromName("updaterIOErrorMsg",
|
|
[Services.appinfo.name,
|
|
Services.appinfo.name], 2);
|
|
do_check_eq(aText, text);
|
|
do_test_finished();
|
|
}
|
|
};
|
|
},
|
|
|
|
QueryInterface: function(iid) {
|
|
if (iid.equals(AUS_Ci.nsIWindowWatcher) ||
|
|
iid.equals(AUS_Ci.nsISupports))
|
|
return this;
|
|
|
|
throw AUS_Cr.NS_ERROR_NO_INTERFACE;
|
|
}
|
|
}
|
|
|
|
var WindowWatcherFactory = {
|
|
createInstance: function createInstance(outer, iid) {
|
|
if (outer != null)
|
|
throw AUS_Cr.NS_ERROR_NO_AGGREGATION;
|
|
return WindowWatcher.QueryInterface(iid);
|
|
}
|
|
};
|