Chromium Code Reviews| 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..ab05103b5c2664bf27e7412393b13bebe30d49f7 100644 |
| --- a/components/autofill/core/browser/contact_info_unittest.cc |
| +++ b/components/autofill/core/browser/contact_info_unittest.cc |
| @@ -15,34 +15,50 @@ 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" }, |
| + { "Mr. John Smith MD", "John", "", "Smith" }, |
| + { "John Ma", "John", "", "Ma" }, |
|
Ilya Sherman
2014/06/04 00:13:46
What about "John James Ma"? "John James Ma, MA"?
|
| + { "John Smith, MA", "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) { |