|
1 Cu.import("resource://testing-common/httpd.js"); |
|
2 |
|
3 var server; |
|
4 const BUGID = "263127"; |
|
5 |
|
6 var listener = { |
|
7 QueryInterface: function(iid) { |
|
8 if (!iid.equals(nsIDownloadObserver) && |
|
9 !iid.equals(nsISupports)) |
|
10 throw Components.results.NS_ERROR_NO_INTERFACE; |
|
11 |
|
12 return this; |
|
13 }, |
|
14 |
|
15 onDownloadComplete: function(downloader, request, ctxt, status, file) { |
|
16 do_test_pending(); |
|
17 server.stop(do_test_finished); |
|
18 |
|
19 if (!file) |
|
20 do_throw("Download failed"); |
|
21 |
|
22 try { |
|
23 file.remove(false); |
|
24 } |
|
25 catch (e) { |
|
26 do_throw(e); |
|
27 } |
|
28 |
|
29 do_check_false(file.exists()); |
|
30 |
|
31 do_test_finished(); |
|
32 } |
|
33 } |
|
34 |
|
35 function run_test() { |
|
36 // start server |
|
37 server = new HttpServer(); |
|
38 server.start(-1); |
|
39 |
|
40 // Initialize downloader |
|
41 var channel = Cc["@mozilla.org/network/io-service;1"] |
|
42 .getService(Ci.nsIIOService) |
|
43 .newChannel("http://localhost:" + |
|
44 server.identity.primaryPort + "/", null, null); |
|
45 |
|
46 var targetFile = Cc["@mozilla.org/file/directory_service;1"] |
|
47 .getService(Ci.nsIProperties) |
|
48 .get("TmpD", Ci.nsIFile); |
|
49 targetFile.append("bug" + BUGID + ".test"); |
|
50 if (targetFile.exists()) |
|
51 targetFile.remove(false); |
|
52 |
|
53 var downloader = Cc["@mozilla.org/network/downloader;1"] |
|
54 .createInstance(Ci.nsIDownloader); |
|
55 downloader.init(listener, targetFile); |
|
56 |
|
57 // Start download |
|
58 channel.asyncOpen(downloader, null); |
|
59 |
|
60 do_test_pending(); |
|
61 } |