diff options
Diffstat (limited to 'dom/base/test/unit/test_chromeutils_getXPCOMErrorName.js')
-rw-r--r-- | dom/base/test/unit/test_chromeutils_getXPCOMErrorName.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/dom/base/test/unit/test_chromeutils_getXPCOMErrorName.js b/dom/base/test/unit/test_chromeutils_getXPCOMErrorName.js new file mode 100644 index 0000000000..f7d6a89e71 --- /dev/null +++ b/dom/base/test/unit/test_chromeutils_getXPCOMErrorName.js @@ -0,0 +1,40 @@ +"use strict"; + +// Test ChromeUtils.getXPCOMErrorName + +add_task(function test_getXPCOMErrorName() { + info("Force the initialization of NSS to get the error names right"); + Cc["@mozilla.org/psm;1"].getService(Ci.nsISupports); + + Assert.equal( + ChromeUtils.getXPCOMErrorName(Cr.NS_OK), + "NS_OK", + "getXPCOMErrorName works for NS_OK" + ); + + Assert.equal( + ChromeUtils.getXPCOMErrorName(Cr.NS_ERROR_FAILURE), + "NS_ERROR_FAILURE", + "getXPCOMErrorName works for NS_ERROR_FAILURE" + ); + + const nssErrors = Cc["@mozilla.org/nss_errors_service;1"].getService( + Ci.nsINSSErrorsService + ); + Assert.equal( + ChromeUtils.getXPCOMErrorName( + nssErrors.getXPCOMFromNSSError(Ci.nsINSSErrorsService.NSS_SEC_ERROR_BASE) + ), + "NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_SECURITY, SEC_ERROR_IO)", + "getXPCOMErrorName works for NSS_SEC_ERROR_BASE" + ); + // See https://searchfox.org/mozilla-central/rev/a48e21143960b383004afa9ff9411c5cf6d5a958/security/nss/lib/util/secerr.h#20 + const SEC_ERROR_BAD_DATA = Ci.nsINSSErrorsService.NSS_SEC_ERROR_BASE + 2; + Assert.equal( + ChromeUtils.getXPCOMErrorName( + nssErrors.getXPCOMFromNSSError(SEC_ERROR_BAD_DATA) + ), + "NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_SECURITY, SEC_ERROR_BAD_DATA)", + "getXPCOMErrorName works for NSS's SEC_ERROR_BAD_DATA" + ); +}); |