summaryrefslogtreecommitdiffstats
path: root/browser/extensions/formautofill/test/unit/test_addressComponent_street_address.js
blob: 83f1cd7ef389b6d3ec5e6a1acacd938691fc52bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
"use strict";

const VALID_TESTS = [
  ["123 Main St. Apt 4, Floor 2", true],
  ["This is a street", true],
  ["A", true],
  ["住址", true],
  ["!#%&'*+", false],
  ["1234", false],
];

const COMPARE_TESTS = [
  { region: "US" },
  ["123 Main St.", "123 Main St.", SAME], // Exactly the same with only street number and street name
  ["123 Main St. Apt 4, Floor 2", "123 Main St. Apt 4, Floor 2", SAME],
  ["123 Main St. Apt 4A, Floor 2", "123 main St. Apt 4a, Floor 2", SAME],
  ["123 Main St. Apt 4, Floor 2", "123 Main St. Suite 4, 2nd fl", SAME], // Exactly the same after parsing
  ["Main St.", "Main St.", SAME], // Exactly the same with only street name
  ["Main St.", "main st.", SAME], // Exactly the same with only street name (case-insenstive)

  ["123 Main St.", "Main St.", A_CONTAINS_B], // Street number is mergeable
  ["123 Main Lane St.", "123 Main St.", A_CONTAINS_B], // Street name is mergeable
  ["123 Main St. Apt 4", "Main St.", A_CONTAINS_B], // Apartment number is mergeable
  ["123 Main St. Apt 4, Floor 2", "123 Main St., Floor 2", A_CONTAINS_B],
  ["123 Main St. Floor 2", "Main St.", A_CONTAINS_B], // Floor number is mergeable
  ["123 Main St. Apt 4, Floor 2", "123 Main St. Apt 4", A_CONTAINS_B],
  ["123 North-South Road", "123 North South Road", SIMILAR], // Street number is mergeable

  ["123 Main St. Apt 4, Floor 2", "1234 Main St. Apt 4, Floor 2", DIFFERENT], // Street number is different
  ["123 Main St. Apt 4, Floor 2", "123 Mainn St. Apt 4, Floor 2", DIFFERENT], // Street name is different
  [
    "123 Lane Main St. Apt 4, Floor 2",
    "123 Main Lane St. Apt 4, Floor 2",
    DIFFERENT,
  ], // Street name is different (token not in order)
  ["123 Main St. Apt 4, Floor 2", "123 Main St. Apt 41, Floor 2", DIFFERENT], // Apartment number is different
  ["123 Main St. Apt 4, Floor 2", "123 Main St. Apt 4, Floor 22", DIFFERENT], // Floor number is different

  ["123 Main St. Apt 4, Floor 2", "123 Main St. Floor 2, Apt 4", DIFFERENT], //
];

const TEST_FIELD_NAME = "StreetAddress";

add_setup(async () => {});

add_task(async function test_isValid() {
  runIsValidTest(VALID_TESTS, TEST_FIELD_NAME, value => {
    return { "street-address": value };
  });
});

add_task(async function test_compare() {
  runCompareTest(COMPARE_TESTS, TEST_FIELD_NAME, value => {
    return { "street-address": value };
  });
});