diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /comm/mailnews/mime/test/unit/test_handlerRegistration.js | |
parent | Initial commit. (diff) | |
download | thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | comm/mailnews/mime/test/unit/test_handlerRegistration.js | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/comm/mailnews/mime/test/unit/test_handlerRegistration.js b/comm/mailnews/mime/test/unit/test_handlerRegistration.js new file mode 100644 index 0000000000..5a2aef8799 --- /dev/null +++ b/comm/mailnews/mime/test/unit/test_handlerRegistration.js @@ -0,0 +1,64 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, you can obtain one at https://mozilla.org/MPL/2.0/. */ + +var { EnigmailVerify } = ChromeUtils.import( + "chrome://openpgp/content/modules/mimeVerify.jsm" +); + +/** + * Tests switching content-type handlers on demand. + */ +add_task(function () { + const CONTRACT_ID = "@mozilla.org/mimecth;1?type=multipart/signed"; + const INTERFACE = Ci.nsIMimeContentTypeHandler; + + Assert.ok( + !Components.manager.isContractIDRegistered(CONTRACT_ID), + "no factory is registered initially" + ); + + EnigmailVerify.registerPGPMimeHandler(); + Assert.equal( + Cc[CONTRACT_ID].number, + EnigmailVerify.pgpMimeFactory.classID.number, + "pgpMimeFactory is the registered factory" + ); + Assert.ok( + Cc[CONTRACT_ID].createInstance(INTERFACE), + "pgpMimeFactory successfully created an instance" + ); + + EnigmailVerify.unregisterPGPMimeHandler(); + Assert.ok( + !Components.manager.isContractIDRegistered(CONTRACT_ID), + "pgpMimeFactory has been unregistered" + ); + Assert.throws( + () => Cc[CONTRACT_ID].createInstance(INTERFACE), + /NS_ERROR_XPC_CI_RETURNED_FAILURE/, + "exception correctly thrown" + ); + + EnigmailVerify.registerPGPMimeHandler(); + Assert.equal( + Cc[CONTRACT_ID].number, + EnigmailVerify.pgpMimeFactory.classID.number, + "pgpMimeFactory is the registered factory" + ); + Assert.ok( + Cc[CONTRACT_ID].createInstance(INTERFACE), + "pgpMimeFactory successfully created an instance" + ); + + EnigmailVerify.unregisterPGPMimeHandler(); + Assert.ok( + !Components.manager.isContractIDRegistered(CONTRACT_ID), + "pgpMimeFactory has been unregistered" + ); + Assert.throws( + () => Cc[CONTRACT_ID].createInstance(INTERFACE), + /NS_ERROR_XPC_CI_RETURNED_FAILURE/, + "exception correctly thrown" + ); +}); |