|
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
2 /* vim: set ts=2 et sw=2 tw=80: */ |
|
3 /* Any copyright is dedicated to the Public Domain. |
|
4 * http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
5 |
|
6 /** |
|
7 * Tests the main download interfaces using DownloadCopySaver. |
|
8 */ |
|
9 |
|
10 "use strict"; |
|
11 |
|
12 XPCOMUtils.defineLazyModuleGetter(this, "DownloadError", |
|
13 "resource://gre/modules/DownloadCore.jsm"); |
|
14 |
|
15 //////////////////////////////////////////////////////////////////////////////// |
|
16 //// Execution of common tests |
|
17 |
|
18 let gUseLegacySaver = false; |
|
19 |
|
20 let scriptFile = do_get_file("common_test_Download.js"); |
|
21 Services.scriptloader.loadSubScript(NetUtil.newURI(scriptFile).spec); |
|
22 |
|
23 //////////////////////////////////////////////////////////////////////////////// |
|
24 //// Tests |
|
25 |
|
26 /** |
|
27 * Tests the DownloadError object. |
|
28 */ |
|
29 add_task(function test_DownloadError() |
|
30 { |
|
31 let error = new DownloadError({ result: Cr.NS_ERROR_NOT_RESUMABLE, |
|
32 message: "Not resumable."}); |
|
33 do_check_eq(error.result, Cr.NS_ERROR_NOT_RESUMABLE); |
|
34 do_check_eq(error.message, "Not resumable."); |
|
35 do_check_false(error.becauseSourceFailed); |
|
36 do_check_false(error.becauseTargetFailed); |
|
37 do_check_false(error.becauseBlocked); |
|
38 do_check_false(error.becauseBlockedByParentalControls); |
|
39 |
|
40 error = new DownloadError({ message: "Unknown error."}); |
|
41 do_check_eq(error.result, Cr.NS_ERROR_FAILURE); |
|
42 do_check_eq(error.message, "Unknown error."); |
|
43 |
|
44 error = new DownloadError({ result: Cr.NS_ERROR_NOT_RESUMABLE }); |
|
45 do_check_eq(error.result, Cr.NS_ERROR_NOT_RESUMABLE); |
|
46 do_check_true(error.message.indexOf("Exception") > 0); |
|
47 |
|
48 // becauseSourceFailed will be set, but not the unknown property. |
|
49 error = new DownloadError({ message: "Unknown error.", |
|
50 becauseSourceFailed: true, |
|
51 becauseUnknown: true }); |
|
52 do_check_true(error.becauseSourceFailed); |
|
53 do_check_false("becauseUnknown" in error); |
|
54 |
|
55 error = new DownloadError({ result: Cr.NS_ERROR_MALFORMED_URI, |
|
56 inferCause: true }); |
|
57 do_check_eq(error.result, Cr.NS_ERROR_MALFORMED_URI); |
|
58 do_check_true(error.becauseSourceFailed); |
|
59 do_check_false(error.becauseTargetFailed); |
|
60 do_check_false(error.becauseBlocked); |
|
61 do_check_false(error.becauseBlockedByParentalControls); |
|
62 |
|
63 // This test does not set inferCause, so becauseSourceFailed will not be set. |
|
64 error = new DownloadError({ result: Cr.NS_ERROR_MALFORMED_URI }); |
|
65 do_check_eq(error.result, Cr.NS_ERROR_MALFORMED_URI); |
|
66 do_check_false(error.becauseSourceFailed); |
|
67 |
|
68 error = new DownloadError({ result: Cr.NS_ERROR_FILE_INVALID_PATH, |
|
69 inferCause: true }); |
|
70 do_check_eq(error.result, Cr.NS_ERROR_FILE_INVALID_PATH); |
|
71 do_check_false(error.becauseSourceFailed); |
|
72 do_check_true(error.becauseTargetFailed); |
|
73 do_check_false(error.becauseBlocked); |
|
74 do_check_false(error.becauseBlockedByParentalControls); |
|
75 |
|
76 error = new DownloadError({ becauseBlocked: true }); |
|
77 do_check_eq(error.message, "Download blocked."); |
|
78 do_check_false(error.becauseSourceFailed); |
|
79 do_check_false(error.becauseTargetFailed); |
|
80 do_check_true(error.becauseBlocked); |
|
81 do_check_false(error.becauseBlockedByParentalControls); |
|
82 |
|
83 error = new DownloadError({ becauseBlockedByParentalControls: true }); |
|
84 do_check_eq(error.message, "Download blocked."); |
|
85 do_check_false(error.becauseSourceFailed); |
|
86 do_check_false(error.becauseTargetFailed); |
|
87 do_check_true(error.becauseBlocked); |
|
88 do_check_true(error.becauseBlockedByParentalControls); |
|
89 }); |
|
90 |
|
91 //////////////////////////////////////////////////////////////////////////////// |
|
92 //// Termination |
|
93 |
|
94 let tailFile = do_get_file("tail.js"); |
|
95 Services.scriptloader.loadSubScript(NetUtil.newURI(tailFile).spec); |