From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../mime/test/unit/test_handlerRegistration.js | 64 ++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 comm/mailnews/mime/test/unit/test_handlerRegistration.js (limited to 'comm/mailnews/mime/test/unit/test_handlerRegistration.js') 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" + ); +}); -- cgit v1.2.3