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 }