diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /browser/extensions/formautofill/test/browser/heuristics/browser_parse_street_address_fields.js | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'browser/extensions/formautofill/test/browser/heuristics/browser_parse_street_address_fields.js')
-rw-r--r-- | browser/extensions/formautofill/test/browser/heuristics/browser_parse_street_address_fields.js | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/browser/extensions/formautofill/test/browser/heuristics/browser_parse_street_address_fields.js b/browser/extensions/formautofill/test/browser/heuristics/browser_parse_street_address_fields.js new file mode 100644 index 0000000000..699ddf086f --- /dev/null +++ b/browser/extensions/formautofill/test/browser/heuristics/browser_parse_street_address_fields.js @@ -0,0 +1,148 @@ +/* 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: ` + <html><body> + <form><input type="text" id="street-address"/></form> + <form><input type="text" id="addr-1"/></form> + <form><input type="text" id="addr-2"/></form> + <form><input type="text" id="addr-3"/></form> + </body></html>`, + 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: ` + <html> + <body> + <form> + <input type="text" id="street-address" autocomplete="street-address"/> + <input type="text" id="address-line2" autocomplete="address-line2"/> + <input type="text" id="email" autocomplete="email"/> + </form> + </body> + </html>`, + 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: ` + <html> + <body> + <form> + <input type="text" id="street-address" autocomplete="street-address"/> + <input type="text" id="address-line3" autocomplete="address-line3"/> + <input type="text" id="email" autocomplete="email"/> + </form> + </body> + </html>`, + 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: ` + <html> + <body> + <form> + <input type="text" id="street-address" autocomplete="street-address"/> + <input type="text" id="address-line1" autocomplete="address-line1"/> + <input type="text" id="email" autocomplete="email"/> + </form> + </body> + </html>`, + 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: ` + <html> + <body> + <form> + <input type="text" id="addr-3"/> + <input type="text" id="addr-2"/> + <input type="text" id="addr-1"/> + </form> + <form> + <input type="text" id="addr-3" autocomplete="address-line3"/> + <input type="text" id="addr-2" autocomplete="address-line2"/> + <input type="text" id="addr-1" autocomplete="address-line1"/> + </form> + </body> + </html>`, + 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" }, + ], + }, + ], + }, +]); |