toolkit/mozapps/extensions/test/xpcshell/test_error.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* Any copyright is dedicated to the Public Domain.
     2  * http://creativecommons.org/publicdomain/zero/1.0/
     3  */
     5 // Tests that various error conditions are handled correctly
     7 Components.utils.import("resource://gre/modules/Services.jsm");
     9 const profileDir = gProfD.clone();
    10 profileDir.append("extensions");
    12 function run_test() {
    13   createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
    15   startupManager();
    17   do_test_pending();
    18   run_test_1();
    19 }
    21 // Checks that a local file validates ok
    22 function run_test_1() {
    23   AddonManager.getInstallForFile(do_get_file("data/unsigned.xpi"), function(install) {
    24     do_check_neq(install, null);
    25     do_check_eq(install.state, AddonManager.STATE_DOWNLOADED);
    26     do_check_eq(install.error, 0);
    28     install.cancel();
    30     run_test_2();
    31   });
    32 }
    34 // Checks that a corrupt file shows an error
    35 function run_test_2() {
    36   AddonManager.getInstallForFile(do_get_file("data/corrupt.xpi"), function(install) {
    37     do_check_neq(install, null);
    38     do_check_eq(install.state, AddonManager.STATE_DOWNLOAD_FAILED);
    39     do_check_eq(install.error, AddonManager.ERROR_CORRUPT_FILE);
    41     run_test_3();
    42   });
    43 }
    45 // Checks that an empty file shows an error
    46 function run_test_3() {
    47   AddonManager.getInstallForFile(do_get_file("data/empty.xpi"), function(install) {
    48     do_check_neq(install, null);
    49     do_check_eq(install.state, AddonManager.STATE_DOWNLOAD_FAILED);
    50     do_check_eq(install.error, AddonManager.ERROR_CORRUPT_FILE);
    52     run_test_4();
    53   });
    54 }
    56 // Checks that a file that doesn't match its hash shows an error
    57 function run_test_4() {
    58   let url = Services.io.newFileURI(do_get_file("data/unsigned.xpi")).spec;
    59   AddonManager.getInstallForURL(url, function(install) {
    60     do_check_neq(install, null);
    61     do_check_eq(install.state, AddonManager.STATE_DOWNLOAD_FAILED);
    62     do_check_eq(install.error, AddonManager.ERROR_INCORRECT_HASH);
    64     run_test_5();
    65   }, "application/x-xpinstall", "sha1:foo");
    66 }
    68 // Checks that a file that doesn't exist shows an error
    69 function run_test_4() {
    70   let file = do_get_file("data");
    71   file.append("missing.xpi");
    72   AddonManager.getInstallForFile(file, function(install) {
    73     do_check_neq(install, null);
    74     do_check_eq(install.state, AddonManager.STATE_DOWNLOAD_FAILED);
    75     do_check_eq(install.error, AddonManager.ERROR_NETWORK_FAILURE);
    77     run_test_5();
    78   });
    79 }
    81 // Checks that an add-on with an illegal ID shows an error
    82 function run_test_5() {
    83   AddonManager.getInstallForFile(do_get_addon("test_bug567173"), function(install) {
    84     do_check_neq(install, null);
    85     do_check_eq(install.state, AddonManager.STATE_DOWNLOAD_FAILED);
    86     do_check_eq(install.error, AddonManager.ERROR_CORRUPT_FILE);
    88     do_execute_soon(do_test_finished);
    89   });
    90 }

mercurial