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 de550bd827bd869c9966a9a650fba85111e746db..e7b574a83d18dab4c3685e090f24985534323054 100644 |
--- a/components/autofill/core/browser/autofill_profile_unittest.cc |
+++ b/components/autofill/core/browser/autofill_profile_unittest.cc |
@@ -898,4 +898,69 @@ TEST(AutofillProfileTest, FullAddress) { |
EXPECT_TRUE(profile.GetInfo(full_address, "en-US").empty()); |
} |
+TEST(AutofillProfileTest, OverwriteOrAppendNames) { |
+ AutofillProfile a(base::GenerateGUID(), "https://www.example.com"); |
+ test::SetProfileInfo(&a, |
+ "Marion", |
+ "Mitchell", |
+ "Morrison", |
+ "marion@me.xyz", |
+ "Fox", |
+ "123 Zoo St.", |
+ "unit 5", |
+ "Hollywood", |
+ "CA", |
+ "91601", |
+ "US", |
+ "12345678910"); |
Ilya Sherman
2014/05/31 00:34:41
nit: Please only set the relevant fields, i.e. the
Pritam Nikam
2014/05/31 10:30:41
Done.
|
+ |
+ NameInfo name; |
+ std::vector<NameInfo> names; |
+ std::vector<base::string16> name_list; |
+ |
+ a.GetRawMultiInfo(NAME_FULL, &name_list); |
+ ASSERT_EQ(1U, name_list.size()); |
+ |
+ // Case 1: Identical full names |
+ // Case 1A: Prefer with more info - 2 word last-name |
+ // overwrite existing name as {first||last1 last2} |
+ name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("Marion")); |
+ name.SetRawInfo(NAME_MIDDLE, base::string16()); |
+ name.SetRawInfo(NAME_LAST, ASCIIToUTF16("Mitchell Morrison")); |
+ names.push_back(name); |
+ |
+ a.OverwriteOrAppendNames(names); |
+ a.GetRawMultiInfo(NAME_FULL, &name_list); |
+ ASSERT_EQ(1U, name_list.size()); |
+ |
+ // Case 1B: profile name with parsed tokens pased as first_, middle_ & last_ |
+ // Don't add to the list - {first|middle|last} |
+ base::string16 full_name = name.GetRawInfo(NAME_FULL); |
+ name.SetRawInfo(NAME_FULL, full_name); |
+ names[0] = name; |
+ |
+ a.OverwriteOrAppendNames(names); |
+ a.GetRawMultiInfo(NAME_FULL, &name_list); |
+ ASSERT_EQ(1U, name_list.size()); |
+ |
+ // Case 1C: Prefer with more info - 2 word first-name |
+ // append as new name to the list - {first1 first2||last} |
+ name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("Marion Mitchell")); |
+ name.SetRawInfo(NAME_MIDDLE, base::string16()); |
+ name.SetRawInfo(NAME_LAST, ASCIIToUTF16("Morrison")); |
+ names[0] = name; |
+ |
+ a.OverwriteOrAppendNames(names); |
+ a.GetRawMultiInfo(NAME_FULL, &name_list); |
+ ASSERT_EQ(2U, name_list.size()); |
+ |
+ // Case 2: Unique names |
+ // append name to the list |
+ name.SetRawInfo(NAME_FULL, ASCIIToUTF16("Marion M. Morrison")); |
+ names[0] = name; |
+ |
+ a.OverwriteOrAppendNames(names); |
+ a.GetRawMultiInfo(NAME_FULL, &name_list); |
+ ASSERT_EQ(3U, name_list.size()); |
+} |
Ilya Sherman
2014/05/31 00:34:41
This test code is somewhat fragile and hard to fol
Pritam Nikam
2014/05/31 10:30:41
Done.
|
} // namespace autofill |