head_addressComponent.js (2366B)
1 "use strict"; 2 3 /* exported BOTH_EMPTY, A_IS_EMPTY, B_IS_EMPTY, A_CONTAINS_B, B_CONTAINS_A, SIMILAR, SAME, DIFFERENT, runIsValidTest, runCompareTest */ 4 5 const { AddressComparison, AddressComponent } = ChromeUtils.importESModule( 6 "resource://gre/modules/shared/AddressComponent.sys.mjs" 7 ); 8 9 const { FormAutofill } = ChromeUtils.importESModule( 10 "resource://autofill/FormAutofill.sys.mjs" 11 ); 12 13 const BOTH_EMPTY = AddressComparison.BOTH_EMPTY; 14 const A_IS_EMPTY = AddressComparison.A_IS_EMPTY; 15 const B_IS_EMPTY = AddressComparison.B_IS_EMPTY; 16 const A_CONTAINS_B = AddressComparison.A_CONTAINS_B; 17 const B_CONTAINS_A = AddressComparison.B_CONTAINS_A; 18 const SIMILAR = AddressComparison.SIMILAR; 19 const SAME = AddressComparison.SAME; 20 const DIFFERENT = AddressComparison.DIFFERENT; 21 22 function runIsValidTest(tests, fieldName, funcSetupRecord) { 23 for (const test of tests) { 24 if (!Array.isArray(test)) { 25 FormAutofill.DEFAULT_REGION = test.region; 26 info(`Change region to ${JSON.stringify(test.region)}`); 27 continue; 28 } 29 30 const [testValue, expected] = test; 31 const record = funcSetupRecord(testValue); 32 33 const field = new AddressComponent(record, { 34 ignoreInvalid: false, 35 }).getField(fieldName); 36 const result = field.isValid(); 37 Assert.equal( 38 result, 39 expected, 40 `Expect isValid returns ${expected} for ${testValue}` 41 ); 42 } 43 FormAutofill.DEFAULT_REGION = null; 44 } 45 46 function runCompareTest(tests, fieldName, funcSetupRecord) { 47 for (const test of tests) { 48 if (!Array.isArray(test)) { 49 info(`change region to ${JSON.stringify(test.region)}`); 50 FormAutofill.DEFAULT_REGION = test.region; 51 continue; 52 } 53 54 const [v1, v2, expected] = test; 55 const r1 = funcSetupRecord(v1); 56 const f1 = new AddressComponent(r1, { ignoreInvalid: false }).getField( 57 fieldName 58 ); 59 60 const r2 = funcSetupRecord(v2); 61 const f2 = new AddressComponent(r2, { ignoreInvalid: false }).getField( 62 fieldName 63 ); 64 65 const result = AddressComparison.compare(f1, f2); 66 const resultString = AddressComparison.resultToString(result); 67 const expectedString = AddressComparison.resultToString(expected); 68 Assert.equal( 69 result, 70 expected, 71 `Expect ${expectedString} when comparing "${v1}" & "${v2}", got ${resultString}` 72 ); 73 } 74 FormAutofill.DEFAULT_REGION = null; 75 }