tor-browser

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

test_parseAddressFormat.js (1931B)


      1 "use strict";
      2 
      3 var FormAutofillUtils;
      4 add_setup(async () => {
      5  ({ FormAutofillUtils } = ChromeUtils.importESModule(
      6    "resource://gre/modules/shared/FormAutofillUtils.sys.mjs"
      7  ));
      8 });
      9 
     10 add_task(async function test_parseAddressFormat() {
     11  const TEST_CASES = [
     12    {
     13      fmt: "%N%n%O%n%A%n%C, %S %Z", // US
     14      parsed: [
     15        { fieldId: "name", newLine: true },
     16        { fieldId: "organization", newLine: true },
     17        { fieldId: "street-address", newLine: true },
     18        { fieldId: "address-level2" },
     19        { fieldId: "address-level1" },
     20        { fieldId: "postal-code" },
     21      ],
     22    },
     23    {
     24      fmt: "%N%n%O%n%A%n%C %S %Z", // CA
     25      parsed: [
     26        { fieldId: "name", newLine: true },
     27        { fieldId: "organization", newLine: true },
     28        { fieldId: "street-address", newLine: true },
     29        { fieldId: "address-level2" },
     30        { fieldId: "address-level1" },
     31        { fieldId: "postal-code" },
     32      ],
     33    },
     34    {
     35      fmt: "%N%n%O%n%A%n%Z %C", // DE
     36      parsed: [
     37        { fieldId: "name", newLine: true },
     38        { fieldId: "organization", newLine: true },
     39        { fieldId: "street-address", newLine: true },
     40        { fieldId: "postal-code" },
     41        { fieldId: "address-level2" },
     42      ],
     43    },
     44    {
     45      fmt: "%N%n%O%n%A%n%D%n%C%n%S %Z", // IE
     46      parsed: [
     47        { fieldId: "name", newLine: true },
     48        { fieldId: "organization", newLine: true },
     49        { fieldId: "street-address", newLine: true },
     50        { fieldId: "address-level3", newLine: true },
     51        { fieldId: "address-level2", newLine: true },
     52        { fieldId: "address-level1" },
     53        { fieldId: "postal-code" },
     54      ],
     55    },
     56  ];
     57 
     58  Assert.throws(
     59    () => FormAutofillUtils.parseAddressFormat(),
     60    /fmt string is missing./,
     61    "Should throw if fmt is empty"
     62  );
     63  for (let tc of TEST_CASES) {
     64    Assert.deepEqual(FormAutofillUtils.parseAddressFormat(tc.fmt), tc.parsed);
     65  }
     66 });