Index: components/autofill/core/browser/autofill_profile_unittest.cc |
diff --git a/components/autofill/core/browser/autofill_profile_unittest.cc b/components/autofill/core/browser/autofill_profile_unittest.cc |
index 39b1bac9b3d8ea5c18067ad0b034d662b1f40d8c..35e748d158dc4d6b9829d60fbc019b4ca1266fb0 100644 |
--- a/components/autofill/core/browser/autofill_profile_unittest.cc |
+++ b/components/autofill/core/browser/autofill_profile_unittest.cc |
@@ -70,13 +70,13 @@ struct TestCase { |
// NameParts from |starting_names|, |additional_names| or |expected_result| |
// from the testcase to create and verify the autofill profile. |
void GetNamePartsList(const std::vector<NameParts>& names, |
- std::vector<base::string16>& first_names, |
- std::vector<base::string16>& middle_names, |
- std::vector<base::string16>& last_names) { |
+ std::vector<base::string16>* first_names, |
+ std::vector<base::string16>* middle_names, |
+ std::vector<base::string16>* last_names) { |
for (size_t i = 0; i < names.size(); ++i) { |
- first_names.push_back(ASCIIToUTF16(names[i].first)); |
- middle_names.push_back(ASCIIToUTF16(names[i].middle)); |
- last_names.push_back(ASCIIToUTF16(names[i].last)); |
+ first_names->push_back(ASCIIToUTF16(names[i].first)); |
+ middle_names->push_back(ASCIIToUTF16(names[i].middle)); |
+ last_names->push_back(ASCIIToUTF16(names[i].last)); |
} |
} |
@@ -989,33 +989,26 @@ TEST(AutofillProfileTest, OverwriteOrAppendNames) { |
NameParts("Marion", "Mitchell", "Morrison"), |
NameParts("Marion Mitchell", "", "Morrison"))); |
- // A parse that has a two-word first name and two-word last name should |
- // take precedence over a parse that assumes the two middle names and |
- // one last name. |
+ // Two names that are identical in full, but not in parts: the parse that |
+ // does *not* match the heuristic parse should be preferred. |
test_cases.push_back( |
TestCase(NameParts("Arthur", "Ignatius Conan", "Doyle"), |
- NameParts("Arthur Ignatius", "", "Conan Doyle"), |
- NameParts("Arthur Ignatius", "", "Conan Doyle"))); |
+ // Heurstic parse. |
+ NameParts("Arthur Ignatius", "Conan", "Doyle"), |
+ NameParts("Arthur", "Ignatius Conan", "Doyle"))); |
test_cases.push_back( |
- TestCase(NameParts("Arthur Ignatius", "", "Conan Doyle"), |
+ // Heuristic parse. |
+ TestCase(NameParts("Arthur Ignatius", "Conan", "Doyle"), |
NameParts("Arthur", "Ignatius Conan", "Doyle"), |
- NameParts("Arthur Ignatius", "", "Conan Doyle"))); |
+ NameParts("Arthur", "Ignatius Conan", "Doyle"))); |
// A parse that has a many-word first name and/or last name should take |
- // precedence over a heuristically parsed name into {first, middle1 |
- // middle2.. middlen, name}. |
+ // precedence over a heuristically parsed name. |
test_cases.push_back( |
- TestCase(NameParts("Arthur Ignatius Conan", "", "Doyle"), |
- NameParts("Arthur", "Ignatius Conan", "Doyle"), |
- NameParts("Arthur Ignatius Conan", "", "Doyle"))); |
- test_cases.push_back( |
- TestCase(NameParts("Roberto", "Carlos da Silva", "Rocha"), |
+ // Heuristic parse. |
+ TestCase(NameParts("Roberto Carlos da", "Silva", "Rocha"), |
NameParts("Roberto Carlos da Silva", "", "Rocha"), |
NameParts("Roberto Carlos da Silva", "", "Rocha"))); |
- test_cases.push_back( |
- TestCase(NameParts("Antonio", "Augusto", "Ribeiro Reis Jr."), |
- NameParts("Antonio", "Augusto Ribeiro Reis", "Jr."), |
- NameParts("Antonio", "Augusto", "Ribeiro Reis Jr."))); |
// Cases where merging 2 profiles with same full names but |
// different canonical forms appends instead of overwrites, |
@@ -1059,10 +1052,13 @@ TEST(AutofillProfileTest, OverwriteOrAppendNames) { |
it != test_cases.end(); |
++it) { |
TestCase current_case = *it; |
+ SCOPED_TRACE(current_case.starting_names[0].first + " + " + |
+ current_case.additional_names[0].first + " = " + |
+ current_case.expected_result[0].first); |
std::vector<base::string16> first_names, middle_names, last_names; |
GetNamePartsList( |
- current_case.starting_names, first_names, middle_names, last_names); |
+ current_case.starting_names, &first_names, &middle_names, &last_names); |
// Construct the starting_profile. |
AutofillProfile starting_profile(base::GenerateGUID(), |
@@ -1076,7 +1072,8 @@ TEST(AutofillProfileTest, OverwriteOrAppendNames) { |
middle_names.clear(); |
last_names.clear(); |
GetNamePartsList( |
- current_case.additional_names, first_names, middle_names, last_names); |
+ current_case.additional_names, &first_names, &middle_names, |
+ &last_names); |
// Construct the additional_profile. |
AutofillProfile additional_profile(base::GenerateGUID(), |
@@ -1093,7 +1090,7 @@ TEST(AutofillProfileTest, OverwriteOrAppendNames) { |
middle_names.clear(); |
last_names.clear(); |
GetNamePartsList( |
- current_case.expected_result, first_names, middle_names, last_names); |
+ current_case.expected_result, &first_names, &middle_names, &last_names); |
std::vector<base::string16> merged_first_names, merged_middle_names, |
merged_last_names; |