tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_nss_errors_service.js (2194B)


      1 // Any copyright is dedicated to the Public Domain.
      2 // http://creativecommons.org/publicdomain/zero/1.0/
      3 "use strict";
      4 
      5 // Get a profile directory and ensure PSM initializes NSS,
      6 // to ensure the error string tables are installed.
      7 do_get_profile();
      8 Cc["@mozilla.org/psm;1"].getService(Ci.nsISupports);
      9 
     10 function run_test() {
     11  let nssErrorsService = Cc["@mozilla.org/nss_errors_service;1"].getService(
     12    Ci.nsINSSErrorsService
     13  );
     14 
     15  let xpcom = nssErrorsService.getXPCOMFromNSSError(SEC_ERROR_UNTRUSTED_CERT);
     16  let name = nssErrorsService.getErrorName(xpcom);
     17 
     18  equal(
     19    name,
     20    "SEC_ERROR_UNTRUSTED_CERT",
     21    "GetErrorName should work for SEC errors"
     22  );
     23 
     24  xpcom = nssErrorsService.getXPCOMFromNSSError(SSL_ERROR_BAD_CERT_DOMAIN);
     25  name = nssErrorsService.getErrorName(xpcom);
     26 
     27  equal(
     28    name,
     29    "SSL_ERROR_BAD_CERT_DOMAIN",
     30    "GetErrorName should work for SSL errors"
     31  );
     32 
     33  xpcom = nssErrorsService.getXPCOMFromNSSError(
     34    MOZILLA_PKIX_ERROR_INSUFFICIENT_CERTIFICATE_TRANSPARENCY
     35  );
     36  name = nssErrorsService.getErrorName(xpcom);
     37 
     38  equal(
     39    name,
     40    "MOZILLA_PKIX_ERROR_INSUFFICIENT_CERTIFICATE_TRANSPARENCY",
     41    "GetErrorName should work for PKIX errors"
     42  );
     43 
     44  xpcom = nssErrorsService.getXPCOMFromNSSError(SEC_ERROR_EXPIRED_CERTIFICATE);
     45  Assert.ok(
     46    nssErrorsService.isErrorOverridable(xpcom),
     47    "SEC_ERROR_EXPIRED_CERTIFICATE should be overridable"
     48  );
     49 
     50  xpcom = nssErrorsService.getXPCOMFromNSSError(SSL_ERROR_BAD_CERT_DOMAIN);
     51  Assert.ok(
     52    nssErrorsService.isErrorOverridable(xpcom),
     53    "SSL_ERROR_BAD_CERT_DOMAIN should be overridable"
     54  );
     55 
     56  xpcom = nssErrorsService.getXPCOMFromNSSError(
     57    MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT
     58  );
     59  Assert.ok(
     60    nssErrorsService.isErrorOverridable(xpcom),
     61    "MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT should be overridable"
     62  );
     63 
     64  xpcom = nssErrorsService.getXPCOMFromNSSError(SEC_ERROR_BAD_SIGNATURE);
     65  Assert.ok(
     66    !nssErrorsService.isErrorOverridable(xpcom),
     67    "SEC_ERROR_BAD_SIGNATURE should NOT be overridable"
     68  );
     69 
     70  Assert.throws(
     71    () => nssErrorsService.isErrorOverridable(Cr.NS_ERROR_NET_TIMEOUT),
     72    /NS_ERROR_FAILURE/,
     73    "testing a non-security error code should throw"
     74  );
     75 }