summaryrefslogtreecommitdiffstats
path: root/browser/extensions/formautofill/test/browser/heuristics/browser_parse_street_address_fields.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /browser/extensions/formautofill/test/browser/heuristics/browser_parse_street_address_fields.js
parentInitial commit. (diff)
downloadfirefox-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.js148
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" },
+ ],
+ },
+ ],
+ },
+]);