diff options
Diffstat (limited to 'security/manager/ssl/tests/unit/test_pkcs11_tokenDB.js')
-rw-r--r-- | security/manager/ssl/tests/unit/test_pkcs11_tokenDB.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/security/manager/ssl/tests/unit/test_pkcs11_tokenDB.js b/security/manager/ssl/tests/unit/test_pkcs11_tokenDB.js new file mode 100644 index 000000000..ac382ab82 --- /dev/null +++ b/security/manager/ssl/tests/unit/test_pkcs11_tokenDB.js @@ -0,0 +1,45 @@ +// Any copyright is dedicated to the Public Domain. +// http://creativecommons.org/publicdomain/zero/1.0/ +"use strict"; + +// Tests the methods for interfacing with the PKCS #11 token database. + +// Ensure that the appropriate initialization has happened. +do_get_profile(); + +function run_test() { + let tokenDB = Cc["@mozilla.org/security/pk11tokendb;1"] + .getService(Ci.nsIPK11TokenDB); + + let tokenListPreLoad = tokenDB.listTokens(); + while (tokenListPreLoad.hasMoreElements()) { + let token = tokenListPreLoad.getNext().QueryInterface(Ci.nsIPK11Token); + notEqual(token.tokenLabel, "Test PKCS11 Tokeñ Label", + "Test PKCS11 Token 1 should not be listed prior to module load"); + notEqual(token.tokenLabel, "Test PKCS11 Tokeñ 2 Label", + "Test PKCS11 Token 2 should not be listed prior to module load"); + } + + throws(() => tokenDB.findTokenByName("Test PKCS11 Tokeñ Label"), + /NS_ERROR_FAILURE/, + "Non-present test token 1 should not be findable by name"); + throws(() => tokenDB.findTokenByName("Test PKCS11 Tokeñ 2 Label"), + /NS_ERROR_FAILURE/, + "Non-present test token 2 should not be findable by name"); + + loadPKCS11TestModule(false); + + // Test Token 1 is simulated to insert and remove itself in a tight loop, so + // we don't bother testing that it's present. + let tokenListPostLoad = tokenDB.listTokens(); + let foundTokenNames = []; + while (tokenListPostLoad.hasMoreElements()) { + let token = tokenListPostLoad.getNext().QueryInterface(Ci.nsIPK11Token); + foundTokenNames.push(token.tokenName); + } + ok(foundTokenNames.includes("Test PKCS11 Tokeñ 2 Label"), + "Test PKCS11 Token 2 should be listed after module load"); + + notEqual(tokenDB.findTokenByName("Test PKCS11 Tokeñ 2 Label"), null, + "Test token 2 should be findable by name after loading test module"); +} |