netwerk/test/unit/test_bug263127.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/netwerk/test/unit/test_bug263127.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,61 @@
     1.4 +Cu.import("resource://testing-common/httpd.js");
     1.5 +
     1.6 +var server;
     1.7 +const BUGID = "263127";
     1.8 +
     1.9 +var listener = {
    1.10 +  QueryInterface: function(iid) {
    1.11 +    if (!iid.equals(nsIDownloadObserver) &&
    1.12 +        !iid.equals(nsISupports))
    1.13 +      throw Components.results.NS_ERROR_NO_INTERFACE;
    1.14 +
    1.15 +    return this;
    1.16 +  },
    1.17 +
    1.18 +  onDownloadComplete: function(downloader, request, ctxt, status, file) {
    1.19 +    do_test_pending();
    1.20 +    server.stop(do_test_finished);
    1.21 +
    1.22 +    if (!file)
    1.23 +      do_throw("Download failed");
    1.24 +
    1.25 +    try {
    1.26 +      file.remove(false);
    1.27 +    }
    1.28 +    catch (e) {
    1.29 +      do_throw(e);
    1.30 +    }
    1.31 +
    1.32 +    do_check_false(file.exists());
    1.33 +
    1.34 +    do_test_finished();
    1.35 +  }
    1.36 +}
    1.37 +
    1.38 +function run_test() {
    1.39 +  // start server
    1.40 +  server = new HttpServer();
    1.41 +  server.start(-1);
    1.42 +
    1.43 +  // Initialize downloader
    1.44 +  var channel = Cc["@mozilla.org/network/io-service;1"]
    1.45 +                  .getService(Ci.nsIIOService)
    1.46 +                  .newChannel("http://localhost:" +
    1.47 +                              server.identity.primaryPort + "/", null, null);
    1.48 +
    1.49 +  var targetFile = Cc["@mozilla.org/file/directory_service;1"]
    1.50 +                     .getService(Ci.nsIProperties)
    1.51 +                     .get("TmpD", Ci.nsIFile);
    1.52 +  targetFile.append("bug" + BUGID + ".test");
    1.53 +  if (targetFile.exists())
    1.54 +    targetFile.remove(false);
    1.55 +
    1.56 +  var downloader = Cc["@mozilla.org/network/downloader;1"]
    1.57 +                     .createInstance(Ci.nsIDownloader);
    1.58 +  downloader.init(listener, targetFile);
    1.59 +
    1.60 +  // Start download
    1.61 +  channel.asyncOpen(downloader, null);
    1.62 +
    1.63 +  do_test_pending();
    1.64 +}

mercurial