Index: components/autofill/core/browser/contact_info_unittest.cc |
diff --git a/components/autofill/core/browser/contact_info_unittest.cc b/components/autofill/core/browser/contact_info_unittest.cc |
index 4c2be9d42e490aa5f1ebe7c57e959e2f12a0604e..538ad9dcf20556354e3c88f5a8def0e75a2b70e4 100644 |
--- a/components/autofill/core/browser/contact_info_unittest.cc |
+++ b/components/autofill/core/browser/contact_info_unittest.cc |
@@ -15,34 +15,47 @@ using base::ASCIIToUTF16; |
namespace autofill { |
-TEST(NameInfoTest, SetFullName) { |
- NameInfo name; |
- name.SetRawInfo(NAME_FULL, ASCIIToUTF16("Virgil")); |
- EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("Virgil")); |
- EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), base::string16()); |
- EXPECT_EQ(name.GetRawInfo(NAME_LAST), base::string16()); |
- EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("Virgil")); |
+struct FullNameTestCase { |
+ std::string full_name_input; |
+ std::string given_name_output; |
+ std::string middle_name_output; |
+ std::string family_name_output; |
+} full_name_test_cases[] = { |
+ { "", "", "", "" }, |
+ { "John Smith", "John", "", "Smith" }, |
+ { "Julien van der Poel", "Julien", "", "van der Poel" }, |
+ { "John J Johnson", "John", "J", "Johnson" }, |
+ { "John Smith, Jr.", "John", "", "Smith" }, |
+ { "Mr John Smith", "John", "", "Smith" }, |
+ { "Mr. John Smith", "John", "", "Smith" }, |
+ { "Mr. John Smith, M.D.", "John", "", "Smith" }, |
+ { "Mr. John Smith, MD", "John", "", "Smith" }, |
+ { "John Jacob Jingleheimer Smith", "John Jacob", "Jingleheimer", "Smith" }, |
+ { "Virgil", "Virgil", "", "" }, |
+ { "Murray Gell-Mann", "Murray", "", "Gell-Mann" }, |
+ { "Mikhail Yevgrafovich Saltykov-Shchedrin", "Mikhail", "Yevgrafovich", |
+ "Saltykov-Shchedrin" }, |
+ { "Arthur Ignatius Conan Doyle", "Arthur Ignatius", "Conan", "Doyle" }, |
+}; |
- name.SetRawInfo(NAME_FULL, ASCIIToUTF16("Murray Gell-Mann")); |
- EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("Murray")); |
- EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), base::string16()); |
- EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Gell-Mann")); |
- EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("Murray Gell-Mann")); |
- |
- name.SetRawInfo(NAME_FULL, |
- ASCIIToUTF16("Mikhail Yevgrafovich Saltykov-Shchedrin")); |
- EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("Mikhail")); |
- EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Yevgrafovich")); |
- EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Saltykov-Shchedrin")); |
- EXPECT_EQ(name.GetRawInfo(NAME_FULL), |
- ASCIIToUTF16("Mikhail Yevgrafovich Saltykov-Shchedrin")); |
- |
- name.SetRawInfo(NAME_FULL, ASCIIToUTF16("Arthur Ignatius Conan Doyle")); |
- EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("Arthur")); |
- EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Ignatius Conan")); |
- EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Doyle")); |
- EXPECT_EQ(name.GetRawInfo(NAME_FULL), |
- ASCIIToUTF16("Arthur Ignatius Conan Doyle")); |
+TEST(NameInfoTest, SetFullName) { |
+ for (size_t i = 0; i < arraysize(full_name_test_cases); ++i) { |
+ const FullNameTestCase& test_case = full_name_test_cases[i]; |
+ SCOPED_TRACE(test_case.full_name_input); |
+ |
+ NameInfo name; |
+ name.SetInfo(AutofillType(NAME_FULL), |
+ ASCIIToUTF16(test_case.full_name_input), |
+ "en-US"); |
+ EXPECT_EQ(ASCIIToUTF16(test_case.given_name_output), |
+ name.GetInfo(AutofillType(NAME_FIRST), "en-US")); |
+ EXPECT_EQ(ASCIIToUTF16(test_case.middle_name_output), |
+ name.GetInfo(AutofillType(NAME_MIDDLE), "en-US")); |
+ EXPECT_EQ(ASCIIToUTF16(test_case.family_name_output), |
+ name.GetInfo(AutofillType(NAME_LAST), "en-US")); |
+ EXPECT_EQ(ASCIIToUTF16(test_case.full_name_input), |
+ name.GetInfo(AutofillType(NAME_FULL), "en-US")); |
+ } |
} |
TEST(NameInfoTest, GetFullName) { |