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_parseStreetAddress.js | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 browser/extensions/formautofill/test/unit/test_parseStreetAddress.js (limited to 'browser/extensions/formautofill/test/unit/test_parseStreetAddress.js') diff --git a/browser/extensions/formautofill/test/unit/test_parseStreetAddress.js b/browser/extensions/formautofill/test/unit/test_parseStreetAddress.js new file mode 100644 index 0000000000..dc924d2ce8 --- /dev/null +++ b/browser/extensions/formautofill/test/unit/test_parseStreetAddress.js @@ -0,0 +1,74 @@ +"use strict"; + +const { AddressParser } = ChromeUtils.import( + "resource://gre/modules/shared/AddressParser.jsm" +); + +// To add a new test entry to a "TESTCASES" variable, +// you would need to create a new array containing two elements. +// - The first element is a string representing a street address to be parsed. +// - The second element is an array containing the expected output after parsing the address, +// which should follow the format of +// [street number, street name, apartment number (if applicable), floor number (if applicable)]. +// +// Note. If we expect the passed street address cannot be parsed, set the second element to null. +const TESTCASES = [ + ["123 Main St. Apt 4, Floor 2", [123, "Main St.", "4", 2]], + ["32 Vassar Street MIT Room 4", [32, "Vassar Street MIT", "4", null]], + ["32 Vassar Street MIT", [32, "Vassar Street MIT", null, null]], + [ + "32 Vassar Street MIT Room 32-G524", + [32, "Vassar Street MIT", "32-G524", null], + ], + ["163 W Hastings\nSuite 209", [163, "W Hastings", "209", null]], + ["1234 Elm St. Apt 4, Floor 2", [1234, "Elm St.", "4", 2]], + ["456 Oak Drive, Unit 2A", [456, "Oak Drive", "2A", null]], + ["789 Maple Ave, Suite 300", [789, "Maple Ave", "300", null]], + ["321 Willow Lane, #5", [321, "Willow Lane", "5", null]], + ["654 Pine Circle, Apt B", [654, "Pine Circle", "B", null]], + ["987 Birch Court, 3rd Floor", [987, "Birch Court", null, 3]], + ["234 Cedar Way, Unit 6-2", [234, "Cedar Way", "6-2", null]], + ["345 Cherry St, Ste 12", [345, "Cherry St", "12", null]], + ["234 Palm St, Bldg 1, Apt 12", null], +]; + +add_task(async function test_parseStreetAddress() { + for (const TEST of TESTCASES) { + let [address, expected] = TEST; + const result = AddressParser.parseStreetAddress(address); + if (!expected) { + Assert.equal(result, null, "Expect failure to parse this street address"); + continue; + } + + const options = { + trim: true, + ignore_case: true, + }; + + const expectedSN = AddressParser.normalizeString(expected[0], options); + Assert.equal( + result.street_number, + expectedSN, + `expect street number to be ${expectedSN}, but got ${result.street_number}` + ); + const expectedSNA = AddressParser.normalizeString(expected[1], options); + Assert.equal( + result.street_name, + expectedSNA, + `expect street name to be ${expectedSNA}, but got ${result.street_name}` + ); + const expectedAN = AddressParser.normalizeString(expected[2], options); + Assert.equal( + result.apartment_number, + expectedAN, + `expect apartment number to be ${expectedAN}, but got ${result.apartment_number}` + ); + const expectedFN = AddressParser.normalizeString(expected[3], options); + Assert.equal( + result.floor_number, + expectedFN, + `expect floor number to be ${expectedFN}, but got ${result.floor_number}` + ); + } +}); -- cgit v1.2.3