OLD | NEW |
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" |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 EXPECT_EQ(ASCIIToUTF16(test_case.full_name_input), | 62 EXPECT_EQ(ASCIIToUTF16(test_case.full_name_input), |
63 name.GetInfo(AutofillType(NAME_FULL), "en-US")); | 63 name.GetInfo(AutofillType(NAME_FULL), "en-US")); |
64 } | 64 } |
65 } | 65 } |
66 | 66 |
67 TEST(NameInfoTest, GetFullName) { | 67 TEST(NameInfoTest, GetFullName) { |
68 NameInfo name; | 68 NameInfo name; |
69 name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First")); | 69 name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First")); |
70 name.SetRawInfo(NAME_MIDDLE, base::string16()); | 70 name.SetRawInfo(NAME_MIDDLE, base::string16()); |
71 name.SetRawInfo(NAME_LAST, base::string16()); | 71 name.SetRawInfo(NAME_LAST, base::string16()); |
72 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First")); | 72 EXPECT_EQ(ASCIIToUTF16("First"), name.GetRawInfo(NAME_FIRST)); |
73 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), base::string16()); | 73 EXPECT_EQ(base::string16(), name.GetRawInfo(NAME_MIDDLE)); |
74 EXPECT_EQ(name.GetRawInfo(NAME_LAST), base::string16()); | 74 EXPECT_EQ(base::string16(), name.GetRawInfo(NAME_LAST)); |
75 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("First")); | 75 EXPECT_EQ(base::string16(), name.GetRawInfo(NAME_FULL)); |
| 76 EXPECT_EQ(ASCIIToUTF16("First"), |
| 77 name.GetInfo(AutofillType(NAME_FULL), "en-US")); |
76 | 78 |
77 name.SetRawInfo(NAME_FIRST, base::string16()); | 79 name.SetRawInfo(NAME_FIRST, base::string16()); |
78 name.SetRawInfo(NAME_MIDDLE, ASCIIToUTF16("Middle")); | 80 name.SetRawInfo(NAME_MIDDLE, ASCIIToUTF16("Middle")); |
79 name.SetRawInfo(NAME_LAST, base::string16()); | 81 name.SetRawInfo(NAME_LAST, base::string16()); |
80 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), base::string16()); | 82 EXPECT_EQ(base::string16(), name.GetRawInfo(NAME_FIRST)); |
81 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle")); | 83 EXPECT_EQ(ASCIIToUTF16("Middle"), name.GetRawInfo(NAME_MIDDLE)); |
82 EXPECT_EQ(name.GetRawInfo(NAME_LAST), base::string16()); | 84 EXPECT_EQ(base::string16(), name.GetRawInfo(NAME_LAST)); |
83 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("Middle")); | 85 EXPECT_EQ(base::string16(), name.GetRawInfo(NAME_FULL)); |
| 86 EXPECT_EQ(ASCIIToUTF16("Middle"), |
| 87 name.GetInfo(AutofillType(NAME_FULL), "en-US")); |
84 | 88 |
85 name.SetRawInfo(NAME_FIRST, base::string16()); | 89 name.SetRawInfo(NAME_FIRST, base::string16()); |
86 name.SetRawInfo(NAME_MIDDLE, base::string16()); | 90 name.SetRawInfo(NAME_MIDDLE, base::string16()); |
87 name.SetRawInfo(NAME_LAST, ASCIIToUTF16("Last")); | 91 name.SetRawInfo(NAME_LAST, ASCIIToUTF16("Last")); |
88 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), base::string16()); | 92 EXPECT_EQ(base::string16(), name.GetRawInfo(NAME_FIRST)); |
89 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), base::string16()); | 93 EXPECT_EQ(base::string16(), name.GetRawInfo(NAME_MIDDLE)); |
90 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last")); | 94 EXPECT_EQ(ASCIIToUTF16("Last"), name.GetRawInfo(NAME_LAST)); |
91 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("Last")); | 95 EXPECT_EQ(base::string16(), name.GetRawInfo(NAME_FULL)); |
| 96 EXPECT_EQ(ASCIIToUTF16("Last"), |
| 97 name.GetInfo(AutofillType(NAME_FULL), "en-US")); |
92 | 98 |
93 name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First")); | 99 name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First")); |
94 name.SetRawInfo(NAME_MIDDLE, ASCIIToUTF16("Middle")); | 100 name.SetRawInfo(NAME_MIDDLE, ASCIIToUTF16("Middle")); |
95 name.SetRawInfo(NAME_LAST, base::string16()); | 101 name.SetRawInfo(NAME_LAST, base::string16()); |
96 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First")); | 102 EXPECT_EQ(ASCIIToUTF16("First"), name.GetRawInfo(NAME_FIRST)); |
97 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle")); | 103 EXPECT_EQ(ASCIIToUTF16("Middle"), name.GetRawInfo(NAME_MIDDLE)); |
98 EXPECT_EQ(name.GetRawInfo(NAME_LAST), base::string16()); | 104 EXPECT_EQ(base::string16(), name.GetRawInfo(NAME_LAST)); |
99 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("First Middle")); | 105 EXPECT_EQ(base::string16(), name.GetRawInfo(NAME_FULL)); |
| 106 EXPECT_EQ(ASCIIToUTF16("First Middle"), |
| 107 name.GetInfo(AutofillType(NAME_FULL), "en-US")); |
100 | 108 |
101 name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First")); | 109 name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First")); |
102 name.SetRawInfo(NAME_MIDDLE, base::string16()); | 110 name.SetRawInfo(NAME_MIDDLE, base::string16()); |
103 name.SetRawInfo(NAME_LAST, ASCIIToUTF16("Last")); | 111 name.SetRawInfo(NAME_LAST, ASCIIToUTF16("Last")); |
104 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First")); | 112 EXPECT_EQ(ASCIIToUTF16("First"), name.GetRawInfo(NAME_FIRST)); |
105 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), base::string16()); | 113 EXPECT_EQ(base::string16(), name.GetRawInfo(NAME_MIDDLE)); |
106 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last")); | 114 EXPECT_EQ(ASCIIToUTF16("Last"), name.GetRawInfo(NAME_LAST)); |
107 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("First Last")); | 115 EXPECT_EQ(base::string16(), name.GetRawInfo(NAME_FULL)); |
| 116 EXPECT_EQ(ASCIIToUTF16("First Last"), |
| 117 name.GetInfo(AutofillType(NAME_FULL), "en-US")); |
108 | 118 |
109 name.SetRawInfo(NAME_FIRST, base::string16()); | 119 name.SetRawInfo(NAME_FIRST, base::string16()); |
110 name.SetRawInfo(NAME_MIDDLE, ASCIIToUTF16("Middle")); | 120 name.SetRawInfo(NAME_MIDDLE, ASCIIToUTF16("Middle")); |
111 name.SetRawInfo(NAME_LAST, ASCIIToUTF16("Last")); | 121 name.SetRawInfo(NAME_LAST, ASCIIToUTF16("Last")); |
112 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), base::string16()); | 122 EXPECT_EQ(base::string16(), name.GetRawInfo(NAME_FIRST)); |
113 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle")); | 123 EXPECT_EQ(ASCIIToUTF16("Middle"), name.GetRawInfo(NAME_MIDDLE)); |
114 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last")); | 124 EXPECT_EQ(ASCIIToUTF16("Last"), name.GetRawInfo(NAME_LAST)); |
115 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("Middle Last")); | 125 EXPECT_EQ(base::string16(), name.GetRawInfo(NAME_FULL)); |
| 126 EXPECT_EQ(ASCIIToUTF16("Middle Last"), |
| 127 name.GetInfo(AutofillType(NAME_FULL), "en-US")); |
116 | 128 |
117 name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First")); | 129 name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First")); |
118 name.SetRawInfo(NAME_MIDDLE, ASCIIToUTF16("Middle")); | 130 name.SetRawInfo(NAME_MIDDLE, ASCIIToUTF16("Middle")); |
119 name.SetRawInfo(NAME_LAST, ASCIIToUTF16("Last")); | 131 name.SetRawInfo(NAME_LAST, ASCIIToUTF16("Last")); |
120 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First")); | 132 EXPECT_EQ(ASCIIToUTF16("First"), name.GetRawInfo(NAME_FIRST)); |
121 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle")); | 133 EXPECT_EQ(ASCIIToUTF16("Middle"), name.GetRawInfo(NAME_MIDDLE)); |
122 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last")); | 134 EXPECT_EQ(ASCIIToUTF16("Last"), name.GetRawInfo(NAME_LAST)); |
123 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("First Middle Last")); | 135 EXPECT_EQ(base::string16(), name.GetRawInfo(NAME_FULL)); |
| 136 EXPECT_EQ(ASCIIToUTF16("First Middle Last"), |
| 137 name.GetInfo(AutofillType(NAME_FULL), "en-US")); |
124 | 138 |
125 name.SetRawInfo(NAME_FULL, ASCIIToUTF16("First Middle Last, MD")); | 139 name.SetRawInfo(NAME_FULL, ASCIIToUTF16("First Middle Last, MD")); |
126 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First")); | 140 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First")); |
127 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle")); | 141 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle")); |
128 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last")); | 142 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last")); |
129 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("First Middle Last, MD")); | 143 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("First Middle Last, MD")); |
| 144 EXPECT_EQ(ASCIIToUTF16("First Middle Last, MD"), |
| 145 name.GetInfo(AutofillType(NAME_FULL), "en-US")); |
130 | 146 |
131 name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First")); | 147 // Setting a name to the value it already has: no change. |
| 148 name.SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("First"), "en-US"); |
132 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First")); | 149 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First")); |
133 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle")); | 150 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle")); |
134 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last")); | 151 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last")); |
135 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("First Middle Last, MD")); | 152 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("First Middle Last, MD")); |
| 153 EXPECT_EQ(ASCIIToUTF16("First Middle Last, MD"), |
| 154 name.GetInfo(AutofillType(NAME_FULL), "en-US")); |
136 | 155 |
137 // Changing something (e.g., the first name) clears the stored full name. | 156 // Setting raw info: no change. (Even though this leads to a slightly |
| 157 // inconsitent state.) |
138 name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("Second")); | 158 name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("Second")); |
139 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("Second")); | 159 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("Second")); |
140 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle")); | 160 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle")); |
141 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last")); | 161 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last")); |
142 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("Second Middle Last")); | 162 EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("First Middle Last, MD")); |
| 163 EXPECT_EQ(ASCIIToUTF16("First Middle Last, MD"), |
| 164 name.GetInfo(AutofillType(NAME_FULL), "en-US")); |
| 165 |
| 166 // Changing something (e.g., the first name) clears the stored full name. |
| 167 name.SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Third"), "en-US"); |
| 168 EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("Third")); |
| 169 EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle")); |
| 170 EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last")); |
| 171 EXPECT_EQ(ASCIIToUTF16("Third Middle Last"), |
| 172 name.GetInfo(AutofillType(NAME_FULL), "en-US")); |
143 } | 173 } |
144 | 174 |
145 TEST(NameInfoTest, EqualsIgnoreCase) { | 175 TEST(NameInfoTest, ParsedNamesAreEqual) { |
146 struct TestCase { | 176 struct TestCase { |
147 std::string starting_names[3]; | 177 std::string starting_names[3]; |
148 std::string additional_names[3]; | 178 std::string additional_names[3]; |
149 bool expected_result; | 179 bool expected_result; |
150 }; | 180 }; |
151 | 181 |
152 struct TestCase test_cases[] = { | 182 struct TestCase test_cases[] = { |
153 // Identical name comparison. | 183 // Identical name comparison. |
154 {{"Marion", "Mitchell", "Morrison"}, | 184 {{"Marion", "Mitchell", "Morrison"}, |
155 {"Marion", "Mitchell", "Morrison"}, | 185 {"Marion", "Mitchell", "Morrison"}, |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 NameInfo additional_profile; | 234 NameInfo additional_profile; |
205 additional_profile.SetRawInfo( | 235 additional_profile.SetRawInfo( |
206 NAME_FIRST, ASCIIToUTF16(test_cases[i].additional_names[0])); | 236 NAME_FIRST, ASCIIToUTF16(test_cases[i].additional_names[0])); |
207 additional_profile.SetRawInfo( | 237 additional_profile.SetRawInfo( |
208 NAME_MIDDLE, ASCIIToUTF16(test_cases[i].additional_names[1])); | 238 NAME_MIDDLE, ASCIIToUTF16(test_cases[i].additional_names[1])); |
209 additional_profile.SetRawInfo( | 239 additional_profile.SetRawInfo( |
210 NAME_LAST, ASCIIToUTF16(test_cases[i].additional_names[2])); | 240 NAME_LAST, ASCIIToUTF16(test_cases[i].additional_names[2])); |
211 | 241 |
212 // Verify the test expectations. | 242 // Verify the test expectations. |
213 EXPECT_EQ(test_cases[i].expected_result, | 243 EXPECT_EQ(test_cases[i].expected_result, |
214 starting_profile.EqualsIgnoreCase(additional_profile)); | 244 starting_profile.ParsedNamesAreEqual(additional_profile)); |
215 } | 245 } |
216 } | 246 } |
217 | 247 |
218 } // namespace autofill | 248 } // namespace autofill |
OLD | NEW |