--- a/browser/extensions/formautofill/test/unit/test_getAdaptedProfiles.js
+++ b/browser/extensions/formautofill/test/unit/test_getAdaptedProfiles.js
@@ -9,16 +9,18 @@ Cu.import("resource://formautofill/FormA
const DEFAULT_ADDRESS_RECORD = {
"guid": "123",
"street-address": "2 Harrison St\nline2\nline3",
"address-line1": "2 Harrison St",
"address-line2": "line2",
"address-line3": "line3",
"address-level1": "CA",
"country": "US",
+ "tel": "+19876543210",
+ "tel-national": "9876543210",
};
const DEFAULT_CREDITCARD_RECORD = {
"guid": "123",
"cc-exp-month": 1,
"cc-exp-year": 2025,
"cc-exp": "2025-01",
};
@@ -34,16 +36,18 @@ const TESTCASES = [
"guid": "123",
"street-address": "2 Harrison St line2 line3",
"-moz-street-address-one-line": "2 Harrison St line2 line3",
"address-line1": "2 Harrison St",
"address-line2": "line2",
"address-line3": "line3",
"address-level1": "CA",
"country": "US",
+ "tel": "+19876543210",
+ "tel-national": "9876543210",
}],
},
{
description: "Address form with street-address, address-line[1, 2, 3]",
document: `<form>
<input id="street-addr" autocomplete="street-address">
<input id="line1" autocomplete="address-line1">
<input id="line2" autocomplete="address-line2">
@@ -54,16 +58,18 @@ const TESTCASES = [
"guid": "123",
"street-address": "2 Harrison St line2 line3",
"-moz-street-address-one-line": "2 Harrison St line2 line3",
"address-line1": "2 Harrison St",
"address-line2": "line2",
"address-line3": "line3",
"address-level1": "CA",
"country": "US",
+ "tel": "+19876543210",
+ "tel-national": "9876543210",
}],
},
{
description: "Address form with street-address, address-line1",
document: `<form>
<input id="street-addr" autocomplete="street-address">
<input id="line1" autocomplete="address-line1">
</form>`,
@@ -72,16 +78,18 @@ const TESTCASES = [
"guid": "123",
"street-address": "2 Harrison St line2 line3",
"-moz-street-address-one-line": "2 Harrison St line2 line3",
"address-line1": "2 Harrison St line2 line3",
"address-line2": "line2",
"address-line3": "line3",
"address-level1": "CA",
"country": "US",
+ "tel": "+19876543210",
+ "tel-national": "9876543210",
}],
},
{
description: "Address form with street-address, address-line[1, 2]",
document: `<form>
<input id="street-addr" autocomplete="street-address">
<input id="line1" autocomplete="address-line1">
<input id="line2" autocomplete="address-line2">
@@ -91,16 +99,18 @@ const TESTCASES = [
"guid": "123",
"street-address": "2 Harrison St line2 line3",
"-moz-street-address-one-line": "2 Harrison St line2 line3",
"address-line1": "2 Harrison St",
"address-line2": "line2 line3",
"address-line3": "line3",
"address-level1": "CA",
"country": "US",
+ "tel": "+19876543210",
+ "tel-national": "9876543210",
}],
},
{
description: "Address form with street-address, address-line[1, 3]",
document: `<form>
<input id="street-addr" autocomplete="street-address">
<input id="line1" autocomplete="address-line1">
<input id="line3" autocomplete="address-line3">
@@ -110,16 +120,18 @@ const TESTCASES = [
"guid": "123",
"street-address": "2 Harrison St line2 line3",
"-moz-street-address-one-line": "2 Harrison St line2 line3",
"address-line1": "2 Harrison St",
"address-line2": "line2 line3",
"address-line3": "line3",
"address-level1": "CA",
"country": "US",
+ "tel": "+19876543210",
+ "tel-national": "9876543210",
}],
},
{
description: "Address form with exact matching options in select",
document: `<form>
<select autocomplete="address-level1">
<option id="option-address-level1-XX" value="XX">Dummy</option>
<option id="option-address-level1-CA" value="CA">California</option>
@@ -134,16 +146,18 @@ const TESTCASES = [
"guid": "123",
"street-address": "2 Harrison St\nline2\nline3",
"-moz-street-address-one-line": "2 Harrison St line2 line3",
"address-line1": "2 Harrison St",
"address-line2": "line2",
"address-line3": "line3",
"address-level1": "CA",
"country": "US",
+ "tel": "+19876543210",
+ "tel-national": "9876543210",
}],
expectedOptionElements: [{
"address-level1": "option-address-level1-CA",
"country": "option-country-US",
}],
},
{
description: "Address form with inexact matching options in select",
@@ -162,16 +176,18 @@ const TESTCASES = [
"guid": "123",
"street-address": "2 Harrison St\nline2\nline3",
"-moz-street-address-one-line": "2 Harrison St line2 line3",
"address-line1": "2 Harrison St",
"address-line2": "line2",
"address-line3": "line3",
"address-level1": "CA",
"country": "US",
+ "tel": "+19876543210",
+ "tel-national": "9876543210",
}],
expectedOptionElements: [{
"address-level1": "option-address-level1-OO",
"country": "option-country-OO",
}],
},
{
description: "Address form with value-omitted options in select",
@@ -190,16 +206,18 @@ const TESTCASES = [
"guid": "123",
"street-address": "2 Harrison St\nline2\nline3",
"-moz-street-address-one-line": "2 Harrison St line2 line3",
"address-line1": "2 Harrison St",
"address-line2": "line2",
"address-line3": "line3",
"address-level1": "CA",
"country": "US",
+ "tel": "+19876543210",
+ "tel-national": "9876543210",
}],
expectedOptionElements: [{
"address-level1": "option-address-level1-2",
"country": "option-country-2",
}],
},
{
description: "Address form with options with the same value in select ",
@@ -218,16 +236,18 @@ const TESTCASES = [
"guid": "123",
"street-address": "2 Harrison St\nline2\nline3",
"-moz-street-address-one-line": "2 Harrison St line2 line3",
"address-line1": "2 Harrison St",
"address-line2": "line2",
"address-line3": "line3",
"address-level1": "CA",
"country": "US",
+ "tel": "+19876543210",
+ "tel-national": "9876543210",
}],
expectedOptionElements: [{
"address-level1": "option-address-level1-same2",
"country": "option-country-same2",
}],
},
{
description: "Address form without matching options in select for address-level1 and country",
@@ -244,16 +264,186 @@ const TESTCASES = [
profileData: [Object.assign({}, DEFAULT_ADDRESS_RECORD)],
expectedResult: [{
"guid": "123",
"street-address": "2 Harrison St\nline2\nline3",
"-moz-street-address-one-line": "2 Harrison St line2 line3",
"address-line1": "2 Harrison St",
"address-line2": "line2",
"address-line3": "line3",
+ "tel": "+19876543210",
+ "tel-national": "9876543210",
+ }],
+ },
+ {
+ description: "Change the tel value of a profile to tel-national for a field without pattern and maxlength.",
+ document: `<form>
+ <input id="telephone">
+ <input id="line1" autocomplete="address-line1">
+ <input id="line2" autocomplete="address-line2">
+ </form>`,
+ profileData: [Object.assign({}, DEFAULT_ADDRESS_RECORD)],
+ expectedResult: [{
+ "guid": "123",
+ "street-address": "2 Harrison St\nline2\nline3",
+ "-moz-street-address-one-line": "2 Harrison St line2 line3",
+ "address-line1": "2 Harrison St",
+ "address-line2": "line2 line3",
+ "address-line3": "line3",
+ "address-level1": "CA",
+ "country": "US",
+ "tel": "9876543210",
+ "tel-national": "9876543210",
+ }],
+ },
+ {
+ description: "Do not change the profile for an autocomplete=\"tel\" field without patern and maxlength.",
+ document: `<form>
+ <input id="tel" autocomplete="tel">
+ <input id="line1" autocomplete="address-line1">
+ <input id="line2" autocomplete="address-line2">
+ </form>`,
+ profileData: [Object.assign({}, DEFAULT_ADDRESS_RECORD)],
+ expectedResult: [{
+ "guid": "123",
+ "street-address": "2 Harrison St\nline2\nline3",
+ "-moz-street-address-one-line": "2 Harrison St line2 line3",
+ "address-line1": "2 Harrison St",
+ "address-line2": "line2 line3",
+ "address-line3": "line3",
+ "address-level1": "CA",
+ "country": "US",
+ "tel": "+19876543210",
+ "tel-national": "9876543210",
+ }],
+ },
+ {
+ description: "`tel` field with `maxlength` can be filled with `tel` value.",
+ document: `<form>
+ <input id="telephone" maxlength="12">
+ <input id="line1" autocomplete="address-line1">
+ <input id="line2" autocomplete="address-line2">
+ </form>`,
+ profileData: [Object.assign({}, DEFAULT_ADDRESS_RECORD)],
+ expectedResult: [{
+ "guid": "123",
+ "street-address": "2 Harrison St\nline2\nline3",
+ "-moz-street-address-one-line": "2 Harrison St line2 line3",
+ "address-line1": "2 Harrison St",
+ "address-line2": "line2 line3",
+ "address-line3": "line3",
+ "address-level1": "CA",
+ "country": "US",
+ "tel": "+19876543210",
+ "tel-national": "9876543210",
+ }],
+ },
+ {
+ description: "`tel` field with `maxlength` can be filled with `tel-national` value.",
+ document: `<form>
+ <input id="telephone" maxlength="10">
+ <input id="line1" autocomplete="address-line1">
+ <input id="line2" autocomplete="address-line2">
+ </form>`,
+ profileData: [Object.assign({}, DEFAULT_ADDRESS_RECORD)],
+ expectedResult: [{
+ "guid": "123",
+ "street-address": "2 Harrison St\nline2\nline3",
+ "-moz-street-address-one-line": "2 Harrison St line2 line3",
+ "address-line1": "2 Harrison St",
+ "address-line2": "line2 line3",
+ "address-line3": "line3",
+ "address-level1": "CA",
+ "country": "US",
+ "tel": "9876543210",
+ "tel-national": "9876543210",
+ }],
+ },
+ {
+ description: "`tel` field with `pattern` attr can be filled with `tel` value.",
+ document: `<form>
+ <input id="telephone" pattern="[+][0-9]+">
+ <input id="line1" autocomplete="address-line1">
+ <input id="line2" autocomplete="address-line2">
+ </form>`,
+ profileData: [Object.assign({}, DEFAULT_ADDRESS_RECORD)],
+ expectedResult: [{
+ "guid": "123",
+ "street-address": "2 Harrison St\nline2\nline3",
+ "-moz-street-address-one-line": "2 Harrison St line2 line3",
+ "address-line1": "2 Harrison St",
+ "address-line2": "line2 line3",
+ "address-line3": "line3",
+ "address-level1": "CA",
+ "country": "US",
+ "tel": "+19876543210",
+ "tel-national": "9876543210",
+ }],
+ },
+ {
+ description: "Change the tel value of a profile to tel-national one when the pattern is matched.",
+ document: `<form>
+ <input id="telephone" pattern="\d*">
+ <input id="line1" autocomplete="address-line1">
+ <input id="line2" autocomplete="address-line2">
+ </form>`,
+ profileData: [Object.assign({}, DEFAULT_ADDRESS_RECORD)],
+ expectedResult: [{
+ "guid": "123",
+ "street-address": "2 Harrison St\nline2\nline3",
+ "-moz-street-address-one-line": "2 Harrison St line2 line3",
+ "address-line1": "2 Harrison St",
+ "address-line2": "line2 line3",
+ "address-line3": "line3",
+ "address-level1": "CA",
+ "country": "US",
+ "tel": "9876543210",
+ "tel-national": "9876543210",
+ }],
+ },
+ {
+ description: "Matching pattern when a field is with autocomplete=\"tel\".",
+ document: `<form>
+ <input id="tel" autocomplete="tel" pattern="[0-9]+">
+ <input id="line1" autocomplete="address-line1">
+ <input id="line2" autocomplete="address-line2">
+ </form>`,
+ profileData: [Object.assign({}, DEFAULT_ADDRESS_RECORD)],
+ expectedResult: [{
+ "guid": "123",
+ "street-address": "2 Harrison St\nline2\nline3",
+ "-moz-street-address-one-line": "2 Harrison St line2 line3",
+ "address-line1": "2 Harrison St",
+ "address-line2": "line2 line3",
+ "address-line3": "line3",
+ "address-level1": "CA",
+ "country": "US",
+ "tel": "9876543210",
+ "tel-national": "9876543210",
+ }],
+ },
+ {
+ description: "Checking maxlength first when a field is with maxlength.",
+ document: `<form>
+ <input id="tel" autocomplete="tel" maxlength="10">
+ <input id="line1" autocomplete="address-line1">
+ <input id="line2" autocomplete="address-line2">
+ </form>`,
+ profileData: [Object.assign({}, DEFAULT_ADDRESS_RECORD)],
+ expectedResult: [{
+ "guid": "123",
+ "street-address": "2 Harrison St\nline2\nline3",
+ "-moz-street-address-one-line": "2 Harrison St line2 line3",
+ "address-line1": "2 Harrison St",
+ "address-line2": "line2 line3",
+ "address-line3": "line3",
+ "address-level1": "CA",
+ "country": "US",
+ "tel": "9876543210",
+ "tel-national": "9876543210",
}],
},
{
description: "Credit Card form with matching options of cc-exp-year and cc-exp-month",
document: `<form>
<select autocomplete="cc-exp-month">
<option id="option-cc-exp-month-01" value="1">01</option>
<option id="option-cc-exp-month-02" value="2">02</option>