--- a/browser/extensions/formautofill/test/unit/test_profileAutocompleteResult.js
+++ b/browser/extensions/formautofill/test/unit/test_profileAutocompleteResult.js
@@ -7,21 +7,27 @@ let matchingProfiles = [{
organization: "Sesame Street",
"street-address": "123 Sesame Street.",
tel: "1-345-345-3456.",
}, {
guid: "test-guid-2",
organization: "Mozilla",
"street-address": "331 E. Evelyn Avenue",
tel: "1-650-903-0800",
+}, {
+ guid: "test-guid-3",
+ organization: "",
+ "street-address": "321, No Name St.",
+ tel: "1-000-000-0000",
}];
let allFieldNames = ["street-address", "organization", "tel"];
let testCases = [{
+ description: "Focus on an `organization` field",
options: {},
matchingProfiles,
allFieldNames,
searchString: "",
fieldName: "organization",
expected: {
searchResult: Ci.nsIAutoCompleteResult.RESULT_SUCCESS,
defaultIndex: 0,
@@ -41,16 +47,17 @@ let testCases = [{
label: JSON.stringify({
primary: "Mozilla",
secondary: "331 E. Evelyn Avenue",
}),
image: "",
}],
},
}, {
+ description: "Focus on an `tel` field",
options: {},
matchingProfiles,
allFieldNames,
searchString: "",
fieldName: "tel",
expected: {
searchResult: Ci.nsIAutoCompleteResult.RESULT_SUCCESS,
defaultIndex: 0,
@@ -67,19 +74,29 @@ let testCases = [{
value: "1-650-903-0800",
style: "autofill-profile",
comment: JSON.stringify(matchingProfiles[1]),
label: JSON.stringify({
primary: "1-650-903-0800",
secondary: "331 E. Evelyn Avenue",
}),
image: "",
+ }, {
+ value: "1-000-000-0000",
+ style: "autofill-profile",
+ comment: JSON.stringify(matchingProfiles[2]),
+ label: JSON.stringify({
+ primary: "1-000-000-0000",
+ secondary: "321, No Name St.",
+ }),
+ image: "",
}],
},
}, {
+ description: "Focus on an `street-address` field",
options: {},
matchingProfiles,
allFieldNames,
searchString: "",
fieldName: "street-address",
expected: {
searchResult: Ci.nsIAutoCompleteResult.RESULT_SUCCESS,
defaultIndex: 0,
@@ -96,50 +113,62 @@ let testCases = [{
value: "331 E. Evelyn Avenue",
style: "autofill-profile",
comment: JSON.stringify(matchingProfiles[1]),
label: JSON.stringify({
primary: "331 E. Evelyn Avenue",
secondary: "Mozilla",
}),
image: "",
+ }, {
+ value: "321, No Name St.",
+ style: "autofill-profile",
+ comment: JSON.stringify(matchingProfiles[2]),
+ label: JSON.stringify({
+ primary: "321, No Name St.",
+ secondary: "1-000-000-0000",
+ }),
+ image: "",
}],
},
}, {
+ description: "No matching profiles",
options: {},
matchingProfiles: [],
allFieldNames,
searchString: "",
fieldName: "",
expected: {
searchResult: Ci.nsIAutoCompleteResult.RESULT_NOMATCH,
defaultIndex: 0,
items: [],
},
}, {
+ description: "Search with failure",
options: {resultCode: Ci.nsIAutoCompleteResult.RESULT_FAILURE},
matchingProfiles: [],
allFieldNames,
searchString: "",
fieldName: "",
expected: {
searchResult: Ci.nsIAutoCompleteResult.RESULT_FAILURE,
defaultIndex: 0,
items: [],
},
}];
add_task(function* test_all_patterns() {
- testCases.forEach(pattern => {
- let actual = new ProfileAutoCompleteResult(pattern.searchString,
- pattern.fieldName,
- pattern.allFieldNames,
- pattern.matchingProfiles,
- pattern.options);
- let expectedValue = pattern.expected;
+ testCases.forEach(testCase => {
+ do_print("Starting testcase: " + testCase.description);
+ let actual = new ProfileAutoCompleteResult(testCase.searchString,
+ testCase.fieldName,
+ testCase.allFieldNames,
+ testCase.matchingProfiles,
+ testCase.options);
+ let expectedValue = testCase.expected;
equal(actual.searchResult, expectedValue.searchResult);
equal(actual.defaultIndex, expectedValue.defaultIndex);
equal(actual.matchCount, expectedValue.items.length);
expectedValue.items.forEach((item, index) => {
equal(actual.getValueAt(index), item.value);
equal(actual.getCommentAt(index), item.comment);
equal(actual.getLabelAt(index), item.label);
equal(actual.getStyleAt(index), item.style);