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 --- .../test/unit/test_addressComponent_name.js | 101 +++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 browser/extensions/formautofill/test/unit/test_addressComponent_name.js (limited to 'browser/extensions/formautofill/test/unit/test_addressComponent_name.js') diff --git a/browser/extensions/formautofill/test/unit/test_addressComponent_name.js b/browser/extensions/formautofill/test/unit/test_addressComponent_name.js new file mode 100644 index 0000000000..79fb1879d2 --- /dev/null +++ b/browser/extensions/formautofill/test/unit/test_addressComponent_name.js @@ -0,0 +1,101 @@ +"use strict"; + +const VALID_TESTS = [ + ["John Doe", true], + ["John O'Brian'", true], + ["John O-Brian'", true], + ["John Doe", true], +]; + +// prettier-ignore +const COMPARE_TESTS = [ + // Same + ["John", "John", SAME], // first name + ["John Doe", "John Doe", SAME], // first and last name + ["John Middle Doe", "John Middle Doe", SAME], // first, middle, and last name + ["John Mid1 Mid2 Doe", "John Mid1 Mid2 Doe", SAME], + + // Same: case insenstive + ["John Doe", "john doe", SAME], + + // Similar: whitespaces are merged + ["John Doe", "John Doe", SIMILAR], + + // Similar: asscent and base + ["John Doe", "John Döe", SIMILAR], // asscent and base + + // A Contains B + ["John Doe", "Doe", A_CONTAINS_B], // first + family name contains family name + ["John Doe", "John", A_CONTAINS_B], // first + family name contains first name + ["John Middle Doe", "Doe", A_CONTAINS_B], // [first, middle, last] contains [last] + ["John Middle Doe", "John", A_CONTAINS_B], // [first, middle, last] contains [first] + ["John Middle Doe", "Middle", A_CONTAINS_B], // [first, middle, last] contains [middle] + ["John Middle Doe", "Middle Doe", A_CONTAINS_B], // [first, middle, last] contains [middle, last] + ["John Middle Doe", "John Middle", A_CONTAINS_B], // [first, middle, last] contains [fisrt, middle] + ["John Middle Doe", "John Doe", A_CONTAINS_B], // [first, middle, last] contains [fisrt, last] + ["John Mary Jane Doe", "John Doe", A_CONTAINS_B], // [first, middle, last] contains [fisrt, last] + + // Different + ["John Doe", "Jane Roe", DIFFERENT], + ["John Doe", "Doe John", DIFFERENT], // swap order + ["John Middle Doe", "Middle John", DIFFERENT], + ["John Middle Doe", "Doe Middle", DIFFERENT], + ["John Doe", "John Roe.", DIFFERENT], // different family name + ["John Doe", "Jane Doe", DIFFERENT], // different given name + ["John Middle Doe", "Jane Michael Doe", DIFFERENT], // different middle name + + // Puncuation is either removed or replaced with white space + ["John O'Brian", "John OBrian", SIMILAR], + ["John O'Brian", "John O-Brian", SIMILAR], + ["John O'Brian", "John O Brian", SIMILAR], + ["John-Mary Doe", "JohnMary Doe", SIMILAR], + ["John-Mary Doe", "John'Mary Doe", SIMILAR], + ["John-Mary Doe", "John Mary Doe", SIMILAR], + ["John-Mary Doe", "John Mary", A_CONTAINS_B], + + // Test Name Variants + ["John Doe", "J. Doe", A_CONTAINS_B], // first name to initial + ["John Doe", "J. doe", A_CONTAINS_B], + ["John Doe", "J. Doe", A_CONTAINS_B], // first name to initial without '.' + + ["John Middle Doe", "J. Middle Doe", A_CONTAINS_B], // first name to initial, middle name unchanged + ["John Middle Doe", "J. Doe", A_CONTAINS_B], // first name to initial, no middle name + + ["John Middle Doe", "John M. Doe", A_CONTAINS_B], // middle name to initial, first name unchanged + ["John Middle Doe", "J. M. Doe", A_CONTAINS_B], // first and middle name to initial + ["John Middle Doe", "J M Doe", A_CONTAINS_B], // first and middle name to initial without '.' + ["John Middle Doe", "John M. Doe", A_CONTAINS_B], // middle name with initial + + // Test Name Variants: multiple middle name + ["John Mary Jane Doe", "J. MARY JANE Doe", A_CONTAINS_B], // first to initial + ["John Mary Jane Doe", "john. M. J. doe", A_CONTAINS_B], // middle name to initial + ["John Mary Jane Doe", "J. M. J. Doe", A_CONTAINS_B], // first & middle name to initial + ["John Mary Jane Doe", "J. M. Doe", A_CONTAINS_B], // first & part of the middle name to initial + ["John Mary Jane Doe", "John M. Doe", A_CONTAINS_B], + ["John Mary Jane Doe", "J. Doe", A_CONTAINS_B], + + // Test Name Variants: merge initials + ["John Middle Doe", "JM Doe", A_CONTAINS_B], + ["John Mary Jane Doe", "JMJ. doe", A_CONTAINS_B], + + // Different: Don't consider the cases when family name is abbreviated + ["John Middle Doe", "JMD", DIFFERENT], + ["John Middle Doe", "John Middle D.", DIFFERENT], + ["John Middle Doe", "J. M. D.", DIFFERENT], +]; + +const TEST_FIELD_NAME = "Name"; + +add_setup(async () => {}); + +add_task(async function test_isValid() { + runIsValidTest(VALID_TESTS, TEST_FIELD_NAME, value => { + return { name: value }; + }); +}); + +add_task(async function test_compare() { + runCompareTest(COMPARE_TESTS, TEST_FIELD_NAME, value => { + return { name: value }; + }); +}); -- cgit v1.2.3