зеркало из https://github.com/mozilla/pjs.git
60 строки
1.4 KiB
JavaScript
60 строки
1.4 KiB
JavaScript
do_import_script("netwerk/test/httpserver/httpd.js");
|
|
|
|
var server;
|
|
const BUGID = "263127";
|
|
|
|
var listener = {
|
|
QueryInterface: function(iid) {
|
|
if (!iid.equals(nsIDownloadObserver) &&
|
|
!iid.equals(nsISupports))
|
|
throw Components.results.NS_ERROR_NO_INTERFACE;
|
|
|
|
return this;
|
|
},
|
|
|
|
onDownloadComplete: function(downloader, request, ctxt, status, file) {
|
|
server.stop();
|
|
|
|
if (!file)
|
|
do_throw("Download failed");
|
|
|
|
try {
|
|
file.remove(false);
|
|
}
|
|
catch (e) {
|
|
do_throw(e);
|
|
}
|
|
|
|
do_check_false(file.exists());
|
|
|
|
do_test_finished();
|
|
}
|
|
}
|
|
|
|
function run_test() {
|
|
// start server
|
|
server = new nsHttpServer();
|
|
server.start(4444);
|
|
|
|
// Initialize downloader
|
|
var channel = Cc["@mozilla.org/network/io-service;1"]
|
|
.getService(Ci.nsIIOService)
|
|
.newChannel("http://localhost:4444/", null, null);
|
|
|
|
var targetFile = Cc["@mozilla.org/file/directory_service;1"]
|
|
.getService(Ci.nsIProperties)
|
|
.get("TmpD", Ci.nsIFile);
|
|
targetFile.append("bug" + BUGID + ".test");
|
|
if (targetFile.exists())
|
|
targetFile.remove(false);
|
|
|
|
var downloader = Cc["@mozilla.org/network/downloader;1"]
|
|
.createInstance(Ci.nsIDownloader);
|
|
downloader.init(listener, targetFile);
|
|
|
|
// Start download
|
|
channel.asyncOpen(downloader, null);
|
|
|
|
do_test_pending();
|
|
}
|