Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

// Any copyright is dedicated to the Public Domain.
"use strict";
// Get a profile directory and ensure PSM initializes NSS,
// to ensure the error string tables are installed.
do_get_profile();
Cc["@mozilla.org/psm;1"].getService(Ci.nsISupports);
function run_test() {
let nssErrorsService = Cc["@mozilla.org/nss_errors_service;1"].getService(
Ci.nsINSSErrorsService
);
let xpcom = nssErrorsService.getXPCOMFromNSSError(SEC_ERROR_UNTRUSTED_CERT);
let name = nssErrorsService.getErrorName(xpcom);
equal(
name,
"SEC_ERROR_UNTRUSTED_CERT",
"GetErrorName should work for SEC errors"
);
xpcom = nssErrorsService.getXPCOMFromNSSError(SSL_ERROR_BAD_CERT_DOMAIN);
name = nssErrorsService.getErrorName(xpcom);
equal(
name,
"SSL_ERROR_BAD_CERT_DOMAIN",
"GetErrorName should work for SSL errors"
);
xpcom = nssErrorsService.getXPCOMFromNSSError(
MOZILLA_PKIX_ERROR_INSUFFICIENT_CERTIFICATE_TRANSPARENCY
);
name = nssErrorsService.getErrorName(xpcom);
equal(
name,
"MOZILLA_PKIX_ERROR_INSUFFICIENT_CERTIFICATE_TRANSPARENCY",
"GetErrorName should work for PKIX errors"
);
xpcom = nssErrorsService.getXPCOMFromNSSError(SEC_ERROR_EXPIRED_CERTIFICATE);
Assert.ok(
nssErrorsService.isErrorOverridable(xpcom),
"SEC_ERROR_EXPIRED_CERTIFICATE should be overridable"
);
xpcom = nssErrorsService.getXPCOMFromNSSError(SSL_ERROR_BAD_CERT_DOMAIN);
Assert.ok(
nssErrorsService.isErrorOverridable(xpcom),
"SSL_ERROR_BAD_CERT_DOMAIN should be overridable"
);
xpcom = nssErrorsService.getXPCOMFromNSSError(
MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT
);
Assert.ok(
nssErrorsService.isErrorOverridable(xpcom),
"MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT should be overridable"
);
xpcom = nssErrorsService.getXPCOMFromNSSError(SEC_ERROR_BAD_SIGNATURE);
Assert.ok(
!nssErrorsService.isErrorOverridable(xpcom),
"SEC_ERROR_BAD_SIGNATURE should NOT be overridable"
);
Assert.throws(
() => nssErrorsService.isErrorOverridable(Cr.NS_ERROR_NET_TIMEOUT),
/NS_ERROR_FAILURE/,
"testing a non-security error code should throw"
);
}