toolkit/components/jsdownloads/test/unit/test_DownloadCore.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

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

mercurial