summaryrefslogtreecommitdiffstats
path: root/comm/mail/extensions/openpgp/test/unit/rnp/test_uid.js
diff options
context:
space:
mode:
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.js132
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);
+ }
+});