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

Side by Side Diff: components/autofill/browser/name_field_unittest.cc

Issue 17392006: In components/autofill, move browser/ to core/browser/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase to fix conflicts Created 7 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
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/memory/scoped_ptr.h"
6 #include "base/memory/scoped_vector.h"
7 #include "base/strings/utf_string_conversions.h"
8 #include "components/autofill/browser/autofill_field.h"
9 #include "components/autofill/browser/autofill_scanner.h"
10 #include "components/autofill/browser/name_field.h"
11 #include "components/autofill/core/common/form_field_data.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 namespace autofill {
15
16 class NameFieldTest : public testing::Test {
17 public:
18 NameFieldTest() {}
19
20 protected:
21 ScopedVector<const AutofillField> list_;
22 scoped_ptr<NameField> field_;
23 FieldTypeMap field_type_map_;
24
25 // Downcast for tests.
26 static NameField* Parse(AutofillScanner* scanner) {
27 return static_cast<NameField*>(NameField::Parse(scanner));
28 }
29
30 private:
31 DISALLOW_COPY_AND_ASSIGN(NameFieldTest);
32 };
33
34 TEST_F(NameFieldTest, FirstMiddleLast) {
35 FormFieldData field;
36 field.form_control_type = "text";
37
38 field.label = ASCIIToUTF16("First Name");
39 field.name = ASCIIToUTF16("First");
40 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
41
42 field.label = ASCIIToUTF16("Middle Name");
43 field.name = ASCIIToUTF16("Middle");
44 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
45
46 field.label = ASCIIToUTF16("Last Name");
47 field.name = ASCIIToUTF16("Last");
48 list_.push_back(new AutofillField(field, ASCIIToUTF16("name3")));
49
50 AutofillScanner scanner(list_.get());
51 field_.reset(Parse(&scanner));
52 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
53 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
54 ASSERT_TRUE(
55 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
56 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
57 ASSERT_TRUE(
58 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
59 EXPECT_EQ(NAME_MIDDLE, field_type_map_[ASCIIToUTF16("name2")]);
60 ASSERT_TRUE(
61 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end());
62 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]);
63 }
64
65 TEST_F(NameFieldTest, FirstMiddleLast2) {
66 FormFieldData field;
67 field.form_control_type = "text";
68
69 field.label = base::string16();
70 field.name = ASCIIToUTF16("firstName");
71 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
72
73 field.label = base::string16();
74 field.name = ASCIIToUTF16("middleName");
75 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
76
77 field.label = base::string16();
78 field.name = ASCIIToUTF16("lastName");
79 list_.push_back(new AutofillField(field, ASCIIToUTF16("name3")));
80
81 AutofillScanner scanner(list_.get());
82 field_.reset(Parse(&scanner));
83 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
84 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
85 ASSERT_TRUE(
86 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
87 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
88 ASSERT_TRUE(
89 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
90 EXPECT_EQ(NAME_MIDDLE, field_type_map_[ASCIIToUTF16("name2")]);
91 ASSERT_TRUE(
92 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end());
93 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]);
94 }
95
96 TEST_F(NameFieldTest, FirstLast) {
97 FormFieldData field;
98 field.form_control_type = "text";
99
100 field.label = base::string16();
101 field.name = ASCIIToUTF16("first_name");
102 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
103
104 field.label = base::string16();
105 field.name = ASCIIToUTF16("last_name");
106 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
107
108 AutofillScanner scanner(list_.get());
109 field_.reset(Parse(&scanner));
110 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
111 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
112 ASSERT_TRUE(
113 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
114 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
115 ASSERT_TRUE(
116 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
117 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name2")]);
118 }
119
120 TEST_F(NameFieldTest, FirstLast2) {
121 FormFieldData field;
122 field.form_control_type = "text";
123
124 field.label = ASCIIToUTF16("Name");
125 field.name = ASCIIToUTF16("first_name");
126 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
127
128 field.label = ASCIIToUTF16("Name");
129 field.name = ASCIIToUTF16("last_name");
130 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
131
132 AutofillScanner scanner(list_.get());
133 field_.reset(Parse(&scanner));
134 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
135 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
136 ASSERT_TRUE(
137 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
138 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
139 ASSERT_TRUE(
140 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
141 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name2")]);
142 }
143
144 TEST_F(NameFieldTest, FirstLastMiddleWithSpaces) {
145 FormFieldData field;
146 field.form_control_type = "text";
147
148 field.label = ASCIIToUTF16("First Name");
149 field.name = ASCIIToUTF16("first_name");
150 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
151
152 field.label = ASCIIToUTF16("Middle Name");
153 field.name = ASCIIToUTF16("middle_name");
154 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
155
156 field.label = ASCIIToUTF16("Last Name");
157 field.name = ASCIIToUTF16("last_name");
158 list_.push_back(new AutofillField(field, ASCIIToUTF16("name3")));
159
160 AutofillScanner scanner(list_.get());
161 field_.reset(Parse(&scanner));
162 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
163 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
164 ASSERT_TRUE(
165 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
166 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
167 ASSERT_TRUE(
168 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
169 EXPECT_EQ(NAME_MIDDLE, field_type_map_[ASCIIToUTF16("name2")]);
170 ASSERT_TRUE(
171 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end());
172 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]);
173 }
174
175 TEST_F(NameFieldTest, FirstLastEmpty) {
176 FormFieldData field;
177 field.form_control_type = "text";
178
179 field.label = ASCIIToUTF16("Name");
180 field.name = ASCIIToUTF16("first_name");
181 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
182
183 field.label = base::string16();
184 field.name = ASCIIToUTF16("last_name");
185 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
186
187 AutofillScanner scanner(list_.get());
188 field_.reset(Parse(&scanner));
189 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
190 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
191 ASSERT_TRUE(
192 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
193 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
194 ASSERT_TRUE(
195 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
196 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name2")]);
197 }
198
199 TEST_F(NameFieldTest, FirstMiddleLastEmpty) {
200 FormFieldData field;
201 field.form_control_type = "text";
202
203 field.label = ASCIIToUTF16("Name");
204 field.name = ASCIIToUTF16("first_name");
205 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
206
207 field.label = base::string16();
208 field.name = ASCIIToUTF16("middle_name");
209 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
210
211 field.label = base::string16();
212 field.name = ASCIIToUTF16("last_name");
213 list_.push_back(new AutofillField(field, ASCIIToUTF16("name3")));
214
215 AutofillScanner scanner(list_.get());
216 field_.reset(Parse(&scanner));
217 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
218 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
219 ASSERT_TRUE(
220 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
221 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
222 ASSERT_TRUE(
223 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
224 EXPECT_EQ(NAME_MIDDLE_INITIAL, field_type_map_[ASCIIToUTF16("name2")]);
225 ASSERT_TRUE(
226 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end());
227 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]);
228 }
229
230 TEST_F(NameFieldTest, MiddleInitial) {
231 FormFieldData field;
232 field.form_control_type = "text";
233
234 field.label = ASCIIToUTF16("First Name");
235 field.name = ASCIIToUTF16("first_name");
236 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
237
238 field.label = ASCIIToUTF16("MI");
239 field.name = ASCIIToUTF16("middle_name");
240 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
241
242 field.label = ASCIIToUTF16("Last Name");
243 field.name = ASCIIToUTF16("last_name");
244 list_.push_back(new AutofillField(field, ASCIIToUTF16("name3")));
245
246 AutofillScanner scanner(list_.get());
247 field_.reset(Parse(&scanner));
248 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
249 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
250 ASSERT_TRUE(
251 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
252 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
253 ASSERT_TRUE(
254 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
255 EXPECT_EQ(NAME_MIDDLE_INITIAL, field_type_map_[ASCIIToUTF16("name2")]);
256 ASSERT_TRUE(
257 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end());
258 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]);
259 }
260
261 TEST_F(NameFieldTest, MiddleInitialNoLastName) {
262 FormFieldData field;
263 field.form_control_type = "text";
264
265 field.label = ASCIIToUTF16("First Name");
266 field.name = ASCIIToUTF16("first_name");
267 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
268
269 field.label = ASCIIToUTF16("MI");
270 field.name = ASCIIToUTF16("middle_name");
271 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
272
273 AutofillScanner scanner(list_.get());
274 field_.reset(Parse(&scanner));
275 ASSERT_EQ(static_cast<NameField*>(NULL), field_.get());
276 }
277
278 // This case is from the dell.com checkout page. The middle initial "mi" string
279 // came at the end following other descriptive text. http://crbug.com/45123.
280 TEST_F(NameFieldTest, MiddleInitialAtEnd) {
281 FormFieldData field;
282 field.form_control_type = "text";
283
284 field.label = base::string16();
285 field.name = ASCIIToUTF16("XXXnameXXXfirst");
286 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
287
288 field.label = base::string16();
289 field.name = ASCIIToUTF16("XXXnameXXXmi");
290 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
291
292 field.label = base::string16();
293 field.name = ASCIIToUTF16("XXXnameXXXlast");
294 list_.push_back(new AutofillField(field, ASCIIToUTF16("name3")));
295
296 AutofillScanner scanner(list_.get());
297 field_.reset(Parse(&scanner));
298 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
299 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
300 ASSERT_TRUE(
301 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
302 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
303 ASSERT_TRUE(
304 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
305 EXPECT_EQ(NAME_MIDDLE_INITIAL, field_type_map_[ASCIIToUTF16("name2")]);
306 ASSERT_TRUE(
307 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end());
308 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]);
309 }
310
311 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/browser/name_field.cc ('k') | components/autofill/browser/password_autofill_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698