/* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ /* global add_heuristic_tests */ "use strict"; add_heuristic_tests([ { description: "Apply heuristic when we only see one street-address fields", fixtureData: `
`, expectedResult: [ { invalid: true, fields: [{ fieldName: "street-address", reason: "regex-heuristic" }], }, { invalid: true, fields: [{ fieldName: "address-line1", reason: "regex-heuristic" }], }, { invalid: true, fields: [{ fieldName: "address-line1", reason: "update-heuristic" }], }, { invalid: true, fields: [{ fieldName: "address-line1", reason: "update-heuristic" }], }, ], }, { // Bug 1833613 description: "street-address field is treated as address-line1 when address-line2 is present while adddress-line1 is not", fixtureData: `
`, expectedResult: [ { fields: [ { fieldName: "address-line1", reason: "update-heuristic" }, { fieldName: "address-line2", reason: "autocomplete" }, { fieldName: "email", reason: "autocomplete" }, ], }, ], }, { // Bug 1833613 description: "street-address field should not be treated as address-line1 when address-line2 is not present", fixtureData: `
`, expectedResult: [ { fields: [ { fieldName: "street-address", reason: "autocomplete" }, { fieldName: "address-line3", reason: "autocomplete" }, { fieldName: "email", reason: "autocomplete" }, ], }, ], }, { // Bug 1833613 description: "street-address field should not be treated as address-line1 when address-line1 is present", fixtureData: `
`, expectedResult: [ { fields: [ { fieldName: "street-address", reason: "autocomplete" }, { fieldName: "address-line1", reason: "autocomplete" }, { fieldName: "email", reason: "autocomplete" }, ], }, ], }, { description: "street-address field is treated as address-line1 when address-line2 is present while adddress-line1 is not", fixtureData: `
`, expectedResult: [ { description: "Apply heuristic when we see 3 street-address fields occur in a row", fields: [ { fieldName: "address-line1", reason: "update-heuristic" }, { fieldName: "address-line2", reason: "regex-heuristic" }, { fieldName: "address-line3", reason: "update-heuristic" }, ], }, { description: "Do not apply heuristic when we see 3 street-address fields occur in a row but autocomplete attribute is present", fields: [ { fieldName: "address-line3", reason: "autocomplete" }, { fieldName: "address-line2", reason: "autocomplete" }, { fieldName: "address-line1", reason: "autocomplete" }, ], }, ], }, ]);