forked from mirrors/gecko-dev
Bug 554561 - Failed partial not handled properly in UI. r=dtownsend
This commit is contained in:
parent
2d1f0ba03a
commit
00365c20d2
4 changed files with 72 additions and 17 deletions
|
|
@ -191,7 +191,7 @@
|
||||||
</vbox>
|
</vbox>
|
||||||
</wizardpage>
|
</wizardpage>
|
||||||
|
|
||||||
<wizardpage id="downloading" pageid="downloading" next="finished"
|
<wizardpage id="downloading" pageid="downloading"
|
||||||
object="gDownloadingPage" onextra1="gDownloadingPage.onHide();"
|
object="gDownloadingPage" onextra1="gDownloadingPage.onHide();"
|
||||||
onpageshow="gDownloadingPage.onPageShow();">
|
onpageshow="gDownloadingPage.onPageShow();">
|
||||||
<updateheader label="&downloadPage.title;"/>
|
<updateheader label="&downloadPage.title;"/>
|
||||||
|
|
|
||||||
|
|
@ -62,9 +62,12 @@ SimpleTest.waitForExplicitFinish();
|
||||||
function test01() {
|
function test01() {
|
||||||
ok(true, "Entering test01 - test preparation");
|
ok(true, "Entering test01 - test preparation");
|
||||||
|
|
||||||
|
// Specify the url to update.sjs with a slowDownloadMar param so the ui can
|
||||||
|
// load before the download completes.
|
||||||
|
var slowDownloadURL = URL_UPDATE + "?slowDownloadMar=1";
|
||||||
var patches = getLocalPatchString("partial", null, null, null, null, null,
|
var patches = getLocalPatchString("partial", null, null, null, null, null,
|
||||||
STATE_PENDING) +
|
STATE_PENDING) +
|
||||||
getLocalPatchString("complete");
|
getLocalPatchString("complete", slowDownloadURL);
|
||||||
var updates = getLocalUpdateString(patches);
|
var updates = getLocalUpdateString(patches);
|
||||||
|
|
||||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||||
|
|
@ -100,20 +103,32 @@ function test02() {
|
||||||
ok(gDocElem.getButton("cancel").disabled, "cancel button should be disabled");
|
ok(gDocElem.getButton("cancel").disabled, "cancel button should be disabled");
|
||||||
|
|
||||||
gNextFunc = test03;
|
gNextFunc = test03;
|
||||||
|
gPageId = PAGEID_DOWNLOADING;
|
||||||
|
addPageShowListener();
|
||||||
|
// go forward to the downloading page
|
||||||
|
gDocElem.getButton("next").click();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* downloading page
|
||||||
|
*/
|
||||||
|
function test03() {
|
||||||
|
ok(true, "Entering test12 - downloading page");
|
||||||
|
|
||||||
|
is(gDocElem.currentPage.pageid, PAGEID_DOWNLOADING,
|
||||||
|
"Page ID should be " + PAGEID_DOWNLOADING);
|
||||||
|
|
||||||
|
gNextFunc = test04;
|
||||||
gPageId = PAGEID_FINISHED;
|
gPageId = PAGEID_FINISHED;
|
||||||
addPageShowListener();
|
addPageShowListener();
|
||||||
// Clicking next will immediately go forward to the finished page if the
|
// The downloading page will automatically go to the finish page.
|
||||||
// download has already finished or it will go to downloading page and then
|
|
||||||
// automatically go forward to the finished page after the download has
|
|
||||||
// finished.
|
|
||||||
gDocElem.getButton("next").click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* finished page
|
* finished page
|
||||||
*/
|
*/
|
||||||
function test03() {
|
function test04() {
|
||||||
ok(true, "Entering test03 - finished page");
|
ok(true, "Entering test04 - finished page");
|
||||||
|
|
||||||
is(gDocElem.currentPage.pageid, PAGEID_FINISHED,
|
is(gDocElem.currentPage.pageid, PAGEID_FINISHED,
|
||||||
"Page ID should be " + PAGEID_FINISHED);
|
"Page ID should be " + PAGEID_FINISHED);
|
||||||
|
|
|
||||||
|
|
@ -62,9 +62,12 @@ SimpleTest.waitForExplicitFinish();
|
||||||
function test01() {
|
function test01() {
|
||||||
ok(true, "Entering test01 - test preparation");
|
ok(true, "Entering test01 - test preparation");
|
||||||
|
|
||||||
|
// Specify the url to update.sjs with a slowDownloadMar param so the ui can
|
||||||
|
// load before the download completes.
|
||||||
|
var slowDownloadURL = URL_UPDATE + "?slowDownloadMar=1";
|
||||||
var patches = getLocalPatchString("partial", null, null, null, null, null,
|
var patches = getLocalPatchString("partial", null, null, null, null, null,
|
||||||
STATE_PENDING) +
|
STATE_PENDING) +
|
||||||
getLocalPatchString("complete", null, "MD5",
|
getLocalPatchString("complete", slowDownloadURL, "MD5",
|
||||||
"1234cd43a1c77e30191c53a329a3f99d");
|
"1234cd43a1c77e30191c53a329a3f99d");
|
||||||
|
|
||||||
var updates = getLocalUpdateString(patches);
|
var updates = getLocalUpdateString(patches);
|
||||||
|
|
@ -102,20 +105,32 @@ function test02() {
|
||||||
ok(gDocElem.getButton("cancel").disabled, "cancel button should be disabled");
|
ok(gDocElem.getButton("cancel").disabled, "cancel button should be disabled");
|
||||||
|
|
||||||
gNextFunc = test03;
|
gNextFunc = test03;
|
||||||
|
gPageId = PAGEID_DOWNLOADING;
|
||||||
|
addPageShowListener();
|
||||||
|
// go forward to the downloading page
|
||||||
|
gDocElem.getButton("next").click();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* downloading page
|
||||||
|
*/
|
||||||
|
function test03() {
|
||||||
|
ok(true, "Entering test12 - downloading page");
|
||||||
|
|
||||||
|
is(gDocElem.currentPage.pageid, PAGEID_DOWNLOADING,
|
||||||
|
"Page ID should be " + PAGEID_DOWNLOADING);
|
||||||
|
|
||||||
|
gNextFunc = test04;
|
||||||
gPageId = PAGEID_ERRORS;
|
gPageId = PAGEID_ERRORS;
|
||||||
addPageShowListener();
|
addPageShowListener();
|
||||||
// Clicking next will go forward to the finished page if the download has
|
// The downloading page will automatically go to the errors page.
|
||||||
// already finished or it will go to the downloading page and then
|
|
||||||
// automatically go forward to the finished page after the download has
|
|
||||||
// finished.
|
|
||||||
gDocElem.getButton("next").click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* errors page
|
* errors page
|
||||||
*/
|
*/
|
||||||
function test03() {
|
function test04() {
|
||||||
ok(true, "Entering test03 - errors page");
|
ok(true, "Entering test04 - errors page");
|
||||||
|
|
||||||
is(gDocElem.currentPage.pageid, PAGEID_ERRORS,
|
is(gDocElem.currentPage.pageid, PAGEID_ERRORS,
|
||||||
"Page ID should be " + PAGEID_ERRORS);
|
"Page ID should be " + PAGEID_ERRORS);
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,31 @@ function handleRequest(request, response) {
|
||||||
response.setStatusLine(request.httpVersion, statusCode, statusReason);
|
response.setStatusLine(request.httpVersion, statusCode, statusReason);
|
||||||
response.setHeader("Cache-Control", "no-cache", false);
|
response.setHeader("Cache-Control", "no-cache", false);
|
||||||
|
|
||||||
|
// When a mar download is started by the update service it can finish
|
||||||
|
// downloading before the ui has loaded. By specifying a serviceURL for the
|
||||||
|
// update patch that points to this file and has a slowDownloadMar param the
|
||||||
|
// mar will be downloaded asynchronously which will allow the ui to load
|
||||||
|
// before the download completes.
|
||||||
|
if (params.slowDownloadMar) {
|
||||||
|
response.processAsync();
|
||||||
|
response.setHeader("Content-Length", "775");
|
||||||
|
var marFile = AUS_Cc["@mozilla.org/file/directory_service;1"].
|
||||||
|
getService(AUS_Ci.nsIProperties).
|
||||||
|
get("CurWorkD", AUS_Ci.nsILocalFile);
|
||||||
|
var path = URL_PATH + "empty.mar";
|
||||||
|
var pathParts = path.split("/");
|
||||||
|
for(var i = 0; i < pathParts.length; ++i)
|
||||||
|
marFile.append(pathParts[i]);
|
||||||
|
var contents = readFileBytes(marFile);
|
||||||
|
var timer = AUS_Cc["@mozilla.org/timer;1"].
|
||||||
|
createInstance(AUS_Ci.nsITimer);
|
||||||
|
timer.initWithCallback(function() {
|
||||||
|
response.write(contents);
|
||||||
|
response.finish();
|
||||||
|
}, 2000, AUS_Ci.nsITimer.TYPE_ONE_SHOT);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (params.uiURL) {
|
if (params.uiURL) {
|
||||||
var remoteType = "";
|
var remoteType = "";
|
||||||
if (!params.remoteNoTypeAttr &&
|
if (!params.remoteNoTypeAttr &&
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue