diff options
Diffstat (limited to 'comm/mail/extensions/openpgp/test/unit/rnp/test_uid.js')
-rw-r--r-- | comm/mail/extensions/openpgp/test/unit/rnp/test_uid.js | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/comm/mail/extensions/openpgp/test/unit/rnp/test_uid.js b/comm/mail/extensions/openpgp/test/unit/rnp/test_uid.js new file mode 100644 index 0000000000..b87e068e0d --- /dev/null +++ b/comm/mail/extensions/openpgp/test/unit/rnp/test_uid.js @@ -0,0 +1,132 @@ +/* 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 http://mozilla.org/MPL/2.0/. */ + +/** + * Tests for OpenPGP encryption alias rules. + */ + +"use strict"; + +const { OpenPGPTestUtils } = ChromeUtils.import( + "resource://testing-common/mozmill/OpenPGPTestUtils.jsm" +); +const { EnigmailFuncs } = ChromeUtils.import( + "chrome://openpgp/content/modules/funcs.jsm" +); + +const tests = [ + { + input: "Cherry Blossom (桜の花) (description) <email@example.com>", + email: "email@example.com", + }, + { + input: + "Cherry Blossom (桜の花) (description) (more information) <email@example.com>", + email: "email@example.com", + }, + { + input: "First Last <email@example.com>", + email: "email@example.com", + }, + { + input: "Last, First <email@example.com>", + email: "email@example.com", + }, + { + input: "email@example.com", + email: "email@example.com", + }, + { + input: "<email@example.com>", + email: "email@example.com", + }, + { + input: "First Last email@example.com>", + email: "", + }, + { + input: "First Last (comment) <email@example.com>", + email: "email@example.com", + }, + { + input: "First Last (a) (b) (c) (comment) <email@example.com>", + email: "email@example.com", + }, + { + input: "First Last (comment <email@example.com>", + email: "email@example.com", + }, + { + input: "First Last )comment) <email@example.com>", + email: "email@example.com", + }, + { + input: "", + email: "", + }, + { + input: "First Last () <>", + email: "", + }, + { + input: "First Last () <> <> <>", + email: "", + }, + { + input: "First Last () <> <email1@example.com>", + email: "", + }, + { + input: "First <Last> (comment) <email1@example.com>", + email: "", + }, + { + input: "First Last <email@example.com> (bad comment)", + email: "email@example.com", + }, + { + input: "First Last <email@example.com> extra text", + email: "email@example.com", + }, + { + input: "First Last <not-an-email> extra text", + email: "", + }, + { + input: "First Last (comment (nested)) <email@example.com>", + email: "email@example.com", + }, + { + input: + "First Last (comment (no second closing bracket) <email@example.com>", + email: "email@example.com", + }, + { + input: "<a@example.org b@example.org>", + email: "", + }, + { + input: "<a@@example.org>", + email: "", + }, +]; + +/** + * Initialize OpenPGP add testing keys. + */ +add_setup(async function () { + do_get_profile(); + + await OpenPGPTestUtils.initOpenPGP(); +}); + +add_task(async function testAlias() { + for (let test of tests) { + console.debug("testing input: " + test.input); + + let email = EnigmailFuncs.getEmailFromUserID(test.input); + + Assert.equal(test.email, email); + } +}); |