tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 }