1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/toolkit/components/jsdownloads/test/unit/test_DownloadCore.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,95 @@ 1.4 +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 1.5 +/* vim: set ts=2 et sw=2 tw=80: */ 1.6 +/* Any copyright is dedicated to the Public Domain. 1.7 + * http://creativecommons.org/publicdomain/zero/1.0/ */ 1.8 + 1.9 +/** 1.10 + * Tests the main download interfaces using DownloadCopySaver. 1.11 + */ 1.12 + 1.13 +"use strict"; 1.14 + 1.15 +XPCOMUtils.defineLazyModuleGetter(this, "DownloadError", 1.16 + "resource://gre/modules/DownloadCore.jsm"); 1.17 + 1.18 +//////////////////////////////////////////////////////////////////////////////// 1.19 +//// Execution of common tests 1.20 + 1.21 +let gUseLegacySaver = false; 1.22 + 1.23 +let scriptFile = do_get_file("common_test_Download.js"); 1.24 +Services.scriptloader.loadSubScript(NetUtil.newURI(scriptFile).spec); 1.25 + 1.26 +//////////////////////////////////////////////////////////////////////////////// 1.27 +//// Tests 1.28 + 1.29 +/** 1.30 + * Tests the DownloadError object. 1.31 + */ 1.32 +add_task(function test_DownloadError() 1.33 +{ 1.34 + let error = new DownloadError({ result: Cr.NS_ERROR_NOT_RESUMABLE, 1.35 + message: "Not resumable."}); 1.36 + do_check_eq(error.result, Cr.NS_ERROR_NOT_RESUMABLE); 1.37 + do_check_eq(error.message, "Not resumable."); 1.38 + do_check_false(error.becauseSourceFailed); 1.39 + do_check_false(error.becauseTargetFailed); 1.40 + do_check_false(error.becauseBlocked); 1.41 + do_check_false(error.becauseBlockedByParentalControls); 1.42 + 1.43 + error = new DownloadError({ message: "Unknown error."}); 1.44 + do_check_eq(error.result, Cr.NS_ERROR_FAILURE); 1.45 + do_check_eq(error.message, "Unknown error."); 1.46 + 1.47 + error = new DownloadError({ result: Cr.NS_ERROR_NOT_RESUMABLE }); 1.48 + do_check_eq(error.result, Cr.NS_ERROR_NOT_RESUMABLE); 1.49 + do_check_true(error.message.indexOf("Exception") > 0); 1.50 + 1.51 + // becauseSourceFailed will be set, but not the unknown property. 1.52 + error = new DownloadError({ message: "Unknown error.", 1.53 + becauseSourceFailed: true, 1.54 + becauseUnknown: true }); 1.55 + do_check_true(error.becauseSourceFailed); 1.56 + do_check_false("becauseUnknown" in error); 1.57 + 1.58 + error = new DownloadError({ result: Cr.NS_ERROR_MALFORMED_URI, 1.59 + inferCause: true }); 1.60 + do_check_eq(error.result, Cr.NS_ERROR_MALFORMED_URI); 1.61 + do_check_true(error.becauseSourceFailed); 1.62 + do_check_false(error.becauseTargetFailed); 1.63 + do_check_false(error.becauseBlocked); 1.64 + do_check_false(error.becauseBlockedByParentalControls); 1.65 + 1.66 + // This test does not set inferCause, so becauseSourceFailed will not be set. 1.67 + error = new DownloadError({ result: Cr.NS_ERROR_MALFORMED_URI }); 1.68 + do_check_eq(error.result, Cr.NS_ERROR_MALFORMED_URI); 1.69 + do_check_false(error.becauseSourceFailed); 1.70 + 1.71 + error = new DownloadError({ result: Cr.NS_ERROR_FILE_INVALID_PATH, 1.72 + inferCause: true }); 1.73 + do_check_eq(error.result, Cr.NS_ERROR_FILE_INVALID_PATH); 1.74 + do_check_false(error.becauseSourceFailed); 1.75 + do_check_true(error.becauseTargetFailed); 1.76 + do_check_false(error.becauseBlocked); 1.77 + do_check_false(error.becauseBlockedByParentalControls); 1.78 + 1.79 + error = new DownloadError({ becauseBlocked: true }); 1.80 + do_check_eq(error.message, "Download blocked."); 1.81 + do_check_false(error.becauseSourceFailed); 1.82 + do_check_false(error.becauseTargetFailed); 1.83 + do_check_true(error.becauseBlocked); 1.84 + do_check_false(error.becauseBlockedByParentalControls); 1.85 + 1.86 + error = new DownloadError({ becauseBlockedByParentalControls: true }); 1.87 + do_check_eq(error.message, "Download blocked."); 1.88 + do_check_false(error.becauseSourceFailed); 1.89 + do_check_false(error.becauseTargetFailed); 1.90 + do_check_true(error.becauseBlocked); 1.91 + do_check_true(error.becauseBlockedByParentalControls); 1.92 +}); 1.93 + 1.94 +//////////////////////////////////////////////////////////////////////////////// 1.95 +//// Termination 1.96 + 1.97 +let tailFile = do_get_file("tail.js"); 1.98 +Services.scriptloader.loadSubScript(NetUtil.newURI(tailFile).spec);