Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(423)

Side by Side Diff: components/autofill/core/browser/contact_info_unittest.cc

Issue 310463005: Fill in more name fields with requestAutocomplete (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: dumb test is dumb Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/autofill/core/browser/contact_info.h" 5 #include "components/autofill/core/browser/contact_info.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/format_macros.h" 8 #include "base/format_macros.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
11 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
12 #include "components/autofill/core/browser/autofill_type.h" 12 #include "components/autofill/core/browser/autofill_type.h"
13 #include "components/autofill/core/browser/field_types.h" 13 #include "components/autofill/core/browser/field_types.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 15
16 using base::ASCIIToUTF16; 16 using base::ASCIIToUTF16;
17 17
18 namespace autofill { 18 namespace autofill {
19 19
20 struct FullNameTestCase {
21 std::string full_name_input;
22 std::string given_name_output;
23 std::string middle_name_output;
24 std::string family_name_output;
25 } full_name_test_cases[] = {
26 { "", "", "", "" },
27 { "John Smith", "John", "", "Smith" },
28 { "Julien van der Poel", "Julien", "", "van der Poel" },
29 { "John J Johnson", "John", "J", "Johnson" },
30 { "John Smith, Jr.", "John", "", "Smith" },
31 { "Mr John Smith", "John", "", "Smith" },
32 { "Mr. John Smith", "John", "", "Smith" },
33 { "Mr. John Smith, M.D.", "John", "", "Smith" },
34 { "Mr. John Smith, MD", "John", "", "Smith" },
35 { "Mr. John Smith MD", "John", "", "Smith" },
36 { "William Hubert J.R.", "William", "Hubert", "J.R." },
37 { "John Ma", "John", "", "Ma" },
38 { "John Smith, MA", "John", "", "Smith" },
39 { "John Jacob Jingleheimer Smith", "John Jacob", "Jingleheimer", "Smith" },
40 { "Virgil", "Virgil", "", "" },
41 { "Murray Gell-Mann", "Murray", "", "Gell-Mann" },
42 { "Mikhail Yevgrafovich Saltykov-Shchedrin", "Mikhail", "Yevgrafovich",
43 "Saltykov-Shchedrin" },
44 { "Arthur Ignatius Conan Doyle", "Arthur Ignatius", "Conan", "Doyle" },
45 };
46
20 TEST(NameInfoTest, SetFullName) { 47 TEST(NameInfoTest, SetFullName) {
21 NameInfo name; 48 for (size_t i = 0; i < arraysize(full_name_test_cases); ++i) {
22 name.SetRawInfo(NAME_FULL, ASCIIToUTF16("Virgil")); 49 const FullNameTestCase& test_case = full_name_test_cases[i];
23 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("Virgil")); 50 SCOPED_TRACE(test_case.full_name_input);
24 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), base::string16());
25 EXPECT_EQ(name.GetRawInfo(NAME_LAST), base::string16());
26 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("Virgil"));
27 51
28 name.SetRawInfo(NAME_FULL, ASCIIToUTF16("Murray Gell-Mann")); 52 NameInfo name;
29 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("Murray")); 53 name.SetInfo(AutofillType(NAME_FULL),
30 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), base::string16()); 54 ASCIIToUTF16(test_case.full_name_input),
31 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Gell-Mann")); 55 "en-US");
32 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("Murray Gell-Mann")); 56 EXPECT_EQ(ASCIIToUTF16(test_case.given_name_output),
33 57 name.GetInfo(AutofillType(NAME_FIRST), "en-US"));
34 name.SetRawInfo(NAME_FULL, 58 EXPECT_EQ(ASCIIToUTF16(test_case.middle_name_output),
35 ASCIIToUTF16("Mikhail Yevgrafovich Saltykov-Shchedrin")); 59 name.GetInfo(AutofillType(NAME_MIDDLE), "en-US"));
36 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("Mikhail")); 60 EXPECT_EQ(ASCIIToUTF16(test_case.family_name_output),
37 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Yevgrafovich")); 61 name.GetInfo(AutofillType(NAME_LAST), "en-US"));
38 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Saltykov-Shchedrin")); 62 EXPECT_EQ(ASCIIToUTF16(test_case.full_name_input),
39 EXPECT_EQ(name.GetRawInfo(NAME_FULL), 63 name.GetInfo(AutofillType(NAME_FULL), "en-US"));
40 ASCIIToUTF16("Mikhail Yevgrafovich Saltykov-Shchedrin")); 64 }
41
42 name.SetRawInfo(NAME_FULL, ASCIIToUTF16("Arthur Ignatius Conan Doyle"));
43 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("Arthur"));
44 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Ignatius Conan"));
45 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Doyle"));
46 EXPECT_EQ(name.GetRawInfo(NAME_FULL),
47 ASCIIToUTF16("Arthur Ignatius Conan Doyle"));
48 } 65 }
49 66
50 TEST(NameInfoTest, GetFullName) { 67 TEST(NameInfoTest, GetFullName) {
51 NameInfo name; 68 NameInfo name;
52 name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First")); 69 name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First"));
53 name.SetRawInfo(NAME_MIDDLE, base::string16()); 70 name.SetRawInfo(NAME_MIDDLE, base::string16());
54 name.SetRawInfo(NAME_LAST, base::string16()); 71 name.SetRawInfo(NAME_LAST, base::string16());
55 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First")); 72 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First"));
56 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), base::string16()); 73 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), base::string16());
57 EXPECT_EQ(name.GetRawInfo(NAME_LAST), base::string16()); 74 EXPECT_EQ(name.GetRawInfo(NAME_LAST), base::string16());
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last")); 114 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last"));
98 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("Middle Last")); 115 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("Middle Last"));
99 116
100 name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First")); 117 name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First"));
101 name.SetRawInfo(NAME_MIDDLE, ASCIIToUTF16("Middle")); 118 name.SetRawInfo(NAME_MIDDLE, ASCIIToUTF16("Middle"));
102 name.SetRawInfo(NAME_LAST, ASCIIToUTF16("Last")); 119 name.SetRawInfo(NAME_LAST, ASCIIToUTF16("Last"));
103 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First")); 120 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First"));
104 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle")); 121 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle"));
105 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last")); 122 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last"));
106 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("First Middle Last")); 123 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("First Middle Last"));
124
125 name.SetRawInfo(NAME_FULL, ASCIIToUTF16("First Middle Last, MD"));
126 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First"));
127 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle"));
128 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last"));
129 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("First Middle Last, MD"));
130
131 name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First"));
132 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First"));
133 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle"));
134 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last"));
135 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("First Middle Last, MD"));
136
137 // Changing something (e.g., the first name) clears the stored full name.
138 name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("Second"));
139 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("Second"));
140 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle"));
141 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last"));
142 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("Second Middle Last"));
107 } 143 }
108 144
109 TEST(NameInfoTest, EqualsIgnoreCase) { 145 TEST(NameInfoTest, EqualsIgnoreCase) {
110 struct TestCase { 146 struct TestCase {
111 std::string starting_names[3]; 147 std::string starting_names[3];
112 std::string additional_names[3]; 148 std::string additional_names[3];
113 bool expected_result; 149 bool expected_result;
114 }; 150 };
115 151
116 struct TestCase test_cases[] = { 152 struct TestCase test_cases[] = {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 additional_profile.SetRawInfo( 209 additional_profile.SetRawInfo(
174 NAME_LAST, ASCIIToUTF16(test_cases[i].additional_names[2])); 210 NAME_LAST, ASCIIToUTF16(test_cases[i].additional_names[2]));
175 211
176 // Verify the test expectations. 212 // Verify the test expectations.
177 EXPECT_EQ(test_cases[i].expected_result, 213 EXPECT_EQ(test_cases[i].expected_result,
178 starting_profile.EqualsIgnoreCase(additional_profile)); 214 starting_profile.EqualsIgnoreCase(additional_profile));
179 } 215 }
180 } 216 }
181 217
182 } // namespace autofill 218 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698