summaryrefslogtreecommitdiffstats
path: root/browser/extensions/formautofill/test/unit/test_addressComponent_email.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/extensions/formautofill/test/unit/test_addressComponent_email.js')
-rw-r--r--browser/extensions/formautofill/test/unit/test_addressComponent_email.js74
1 files changed, 74 insertions, 0 deletions
diff --git a/browser/extensions/formautofill/test/unit/test_addressComponent_email.js b/browser/extensions/formautofill/test/unit/test_addressComponent_email.js
new file mode 100644
index 0000000000..2c4b07a542
--- /dev/null
+++ b/browser/extensions/formautofill/test/unit/test_addressComponent_email.js
@@ -0,0 +1,74 @@
+"use strict";
+
+// TODO:
+// https://help.xmatters.com/ondemand/trial/valid_email_format.htm what is the allow characters???
+const VALID_TESTS = [
+ // Is Valid Test
+ // [email1, expected]
+ ["john.doe@mozilla.org", true],
+
+ ["", false], // empty
+ ["@mozilla.org", false], // without username
+ ["john.doe@", false], // without domain
+ ["john.doe@-mozilla.org", false], // domain starts with '-'
+ ["john.doe@mozilla.org-", false], // domain ends with '-'
+ ["john.doe@mozilla.-com.au", false], // sub-domain starts with '-'
+ ["john.doe@mozilla.com-.au", false], // sub-domain ends with '-'
+
+ ["john-doe@mozilla.org", true], // dash (ok)
+
+ // Special characters check
+ ["john.!#$%&'*+-/=?^_`{|}~doe@gmail.com", true],
+
+ ["john.doe@work@mozilla.org", false],
+ ["äbc@mail.com", false],
+
+ ["john.doe@" + "a".repeat(63) + ".org", true],
+ ["john.doe@" + "a".repeat(64) + ".org", false],
+
+ // The following are commented out since we're using a more relax email
+ // validation algorithm now.
+ /*
+ ["-john.doe@mozilla.org", false], // username starts with '-'
+ [".john.doe@mozilla.org", false], // username starts with '.'
+ ["john.doe-@mozilla.org", true], // username ends with '-' ???
+ ["john.doe.@mozilla.org", true], // username ends with '.' ???
+ ["john.doe@-mozilla.org", true], // domain starts with '.' ???
+ ["john..doe@mozilla.org", false], // consecutive period
+ ["john.-doe@mozilla.org", false], // period + dash
+ ["john-.doe@mozilla.org", false], // dash + period
+ ["john.doe@school.123", false],
+ ["peter-parker@spiderman", false],
+
+ ["a".repeat(64) + "@mydomain.com", true], // length of username
+ ["b".repeat(65) + "@mydomain.com", false],
+*/
+];
+
+const COMPARE_TESTS = [
+ // Same
+ ["test@mozilla.org", "test@mozilla.org", SAME],
+ ["john.doe@example.com", "jOhn.doE@example.com", SAME],
+ ["jan@gmail.com", "JAN@gmail.com", SAME],
+
+ // Different
+ ["jan@gmail.com", "jan1@gmail.com", DIFFERENT],
+ ["jan@gmail.com", "jan@gmail.com.au", DIFFERENT],
+ ["john#smith@gmail.com", "johnsmith@gmail.com", DIFFERENT],
+];
+
+const TEST_FIELD_NAME = "Email";
+
+add_setup(async () => {});
+
+add_task(async function test_isValid() {
+ runIsValidTest(VALID_TESTS, TEST_FIELD_NAME, value => {
+ return { email: value };
+ });
+});
+
+add_task(async function test_compare() {
+ runCompareTest(COMPARE_TESTS, TEST_FIELD_NAME, value => {
+ return { email: value };
+ });
+});