blob: 2e291879bba2dd468157337411026151960418e1 [file] [log] [blame]
[email protected]c87481cd2011-03-04 12:29:571// Copyright (c) 2011 The Chromium Authors. All rights reserved.
[email protected]7519f1a2010-04-08 02:11:362// 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/scoped_ptr.h"
6#include "base/scoped_vector.h"
[email protected]be1ce6a72010-08-03 14:35:227#include "base/utf_string_conversions.h"
[email protected]7519f1a2010-04-08 02:11:368#include "chrome/browser/autofill/autofill_field.h"
9#include "chrome/browser/autofill/name_field.h"
10#include "testing/gtest/include/gtest/gtest.h"
11#include "webkit/glue/form_field.h"
12
13namespace {
14
15class NameFieldTest : public testing::Test {
16 public:
17 NameFieldTest() {}
18
19 protected:
[email protected]c87481cd2011-03-04 12:29:5720 ScopedVector<AutofillField> list_;
[email protected]7519f1a2010-04-08 02:11:3621 scoped_ptr<NameField> field_;
22 FieldTypeMap field_type_map_;
[email protected]c87481cd2011-03-04 12:29:5723 std::vector<AutofillField*>::const_iterator iter_;
[email protected]7519f1a2010-04-08 02:11:3624
25 private:
26 DISALLOW_COPY_AND_ASSIGN(NameFieldTest);
27};
28
29TEST_F(NameFieldTest, FirstMiddleLast) {
30 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:5731 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("First Name"),
[email protected]7519f1a2010-04-08 02:11:3632 ASCIIToUTF16("First"),
33 string16(),
[email protected]ee0e2d92010-05-14 19:21:1834 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:1635 0,
36 false),
[email protected]7519f1a2010-04-08 02:11:3637 ASCIIToUTF16("name1")));
38 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:5739 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Middle Name"),
[email protected]7519f1a2010-04-08 02:11:3640 ASCIIToUTF16("Middle"),
41 string16(),
[email protected]ee0e2d92010-05-14 19:21:1842 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:1643 0,
44 false),
[email protected]7519f1a2010-04-08 02:11:3645 ASCIIToUTF16("name2")));
46 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:5747 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Last Name"),
[email protected]7519f1a2010-04-08 02:11:3648 ASCIIToUTF16("Last"),
49 string16(),
[email protected]ee0e2d92010-05-14 19:21:1850 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:1651 0,
52 false),
[email protected]7519f1a2010-04-08 02:11:3653 ASCIIToUTF16("name3")));
54 list_.push_back(NULL);
55 iter_ = list_.begin();
56 field_.reset(NameField::Parse(&iter_, false));
57 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
58 ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
59 ASSERT_TRUE(
60 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
61 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
62 ASSERT_TRUE(
63 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
64 EXPECT_EQ(NAME_MIDDLE, field_type_map_[ASCIIToUTF16("name2")]);
65 ASSERT_TRUE(
66 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end());
67 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]);
68}
69
[email protected]f6f53bab2010-04-12 16:49:4770TEST_F(NameFieldTest, FirstMiddleLast2) {
71 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:5772 new AutofillField(webkit_glue::FormField(string16(),
[email protected]f6f53bab2010-04-12 16:49:4773 ASCIIToUTF16("firstName"),
74 string16(),
[email protected]ee0e2d92010-05-14 19:21:1875 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:1676 0,
77 false),
[email protected]f6f53bab2010-04-12 16:49:4778 ASCIIToUTF16("name1")));
79 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:5780 new AutofillField(webkit_glue::FormField(string16(),
[email protected]f6f53bab2010-04-12 16:49:4781 ASCIIToUTF16("middleName"),
82 string16(),
[email protected]ee0e2d92010-05-14 19:21:1883 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:1684 0,
85 false),
[email protected]f6f53bab2010-04-12 16:49:4786 ASCIIToUTF16("name2")));
87 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:5788 new AutofillField(webkit_glue::FormField(string16(),
[email protected]f6f53bab2010-04-12 16:49:4789 ASCIIToUTF16("lastName"),
90 string16(),
[email protected]ee0e2d92010-05-14 19:21:1891 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:1692 0,
93 false),
[email protected]f6f53bab2010-04-12 16:49:4794 ASCIIToUTF16("name3")));
95 list_.push_back(NULL);
96 iter_ = list_.begin();
97 field_.reset(NameField::Parse(&iter_, false));
98 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
99 ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
100 ASSERT_TRUE(
101 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
102 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
103 ASSERT_TRUE(
104 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
105 EXPECT_EQ(NAME_MIDDLE, field_type_map_[ASCIIToUTF16("name2")]);
106 ASSERT_TRUE(
107 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end());
108 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]);
109}
110
[email protected]290838a2010-04-27 17:37:01111TEST_F(NameFieldTest, FirstLast) {
112 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57113 new AutofillField(webkit_glue::FormField(string16(),
[email protected]290838a2010-04-27 17:37:01114 ASCIIToUTF16("first_name"),
115 string16(),
[email protected]ee0e2d92010-05-14 19:21:18116 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16117 0,
118 false),
[email protected]290838a2010-04-27 17:37:01119 ASCIIToUTF16("name1")));
120 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57121 new AutofillField(webkit_glue::FormField(string16(),
[email protected]290838a2010-04-27 17:37:01122 ASCIIToUTF16("last_name"),
123 string16(),
[email protected]ee0e2d92010-05-14 19:21:18124 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16125 0,
126 false),
[email protected]290838a2010-04-27 17:37:01127 ASCIIToUTF16("name2")));
128 list_.push_back(NULL);
129 iter_ = list_.begin();
130 field_.reset(NameField::Parse(&iter_, false));
131 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
132 ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
133 ASSERT_TRUE(
134 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
135 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
136 ASSERT_TRUE(
137 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
138 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name2")]);
139}
140
141TEST_F(NameFieldTest, FirstLast2) {
142 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57143 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Name"),
[email protected]290838a2010-04-27 17:37:01144 ASCIIToUTF16("first_name"),
145 string16(),
[email protected]ee0e2d92010-05-14 19:21:18146 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16147 0,
148 false),
[email protected]290838a2010-04-27 17:37:01149 ASCIIToUTF16("name1")));
150 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57151 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Name"),
[email protected]290838a2010-04-27 17:37:01152 ASCIIToUTF16("last_name"),
153 string16(),
[email protected]ee0e2d92010-05-14 19:21:18154 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16155 0,
156 false),
[email protected]290838a2010-04-27 17:37:01157 ASCIIToUTF16("name2")));
158 list_.push_back(NULL);
159 iter_ = list_.begin();
160 field_.reset(NameField::Parse(&iter_, false));
161 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
162 ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
163 ASSERT_TRUE(
164 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
165 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
166 ASSERT_TRUE(
167 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
168 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name2")]);
169}
170
[email protected]44e621d2010-05-13 02:16:53171TEST_F(NameFieldTest, FirstLastMiddleWithSpaces) {
172 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57173 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("First Name"),
[email protected]44e621d2010-05-13 02:16:53174 ASCIIToUTF16("first name"),
175 string16(),
[email protected]ee0e2d92010-05-14 19:21:18176 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16177 0,
178 false),
[email protected]44e621d2010-05-13 02:16:53179 ASCIIToUTF16("name1")));
180 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57181 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Middle Name"),
[email protected]44e621d2010-05-13 02:16:53182 ASCIIToUTF16("middle name"),
183 string16(),
[email protected]ee0e2d92010-05-14 19:21:18184 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16185 0,
186 false),
[email protected]44e621d2010-05-13 02:16:53187 ASCIIToUTF16("name2")));
188 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57189 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Last Name"),
[email protected]44e621d2010-05-13 02:16:53190 ASCIIToUTF16("last name"),
191 string16(),
[email protected]ee0e2d92010-05-14 19:21:18192 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16193 0,
194 false),
[email protected]44e621d2010-05-13 02:16:53195 ASCIIToUTF16("name3")));
196 list_.push_back(NULL);
197 iter_ = list_.begin();
198 field_.reset(NameField::Parse(&iter_, false));
199 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
200 ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
201 ASSERT_TRUE(
202 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
203 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
204 ASSERT_TRUE(
205 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
206 EXPECT_EQ(NAME_MIDDLE, field_type_map_[ASCIIToUTF16("name2")]);
207 ASSERT_TRUE(
208 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end());
209 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]);
210}
211
[email protected]51883692010-08-04 22:02:14212TEST_F(NameFieldTest, FirstLastEmpty) {
213 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57214 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Name"),
[email protected]51883692010-08-04 22:02:14215 ASCIIToUTF16("first_name"),
216 string16(),
217 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16218 0,
219 false),
[email protected]51883692010-08-04 22:02:14220 ASCIIToUTF16("name1")));
221 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57222 new AutofillField(webkit_glue::FormField(string16(),
[email protected]51883692010-08-04 22:02:14223 ASCIIToUTF16("last_name"),
224 string16(),
225 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16226 0,
227 false),
[email protected]51883692010-08-04 22:02:14228 ASCIIToUTF16("name2")));
229 list_.push_back(NULL);
230 iter_ = list_.begin();
231 field_.reset(NameField::Parse(&iter_, false));
232 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
233 ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
234 ASSERT_TRUE(
235 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
236 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
237 ASSERT_TRUE(
238 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
239 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name2")]);
240}
241
242TEST_F(NameFieldTest, FirstMiddleLastEmpty) {
243 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57244 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Name"),
[email protected]51883692010-08-04 22:02:14245 ASCIIToUTF16("first_name"),
246 string16(),
247 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16248 0,
249 false),
[email protected]51883692010-08-04 22:02:14250 ASCIIToUTF16("name1")));
251 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57252 new AutofillField(webkit_glue::FormField(string16(),
[email protected]51883692010-08-04 22:02:14253 ASCIIToUTF16("middle_name"),
254 string16(),
255 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16256 0,
257 false),
[email protected]51883692010-08-04 22:02:14258 ASCIIToUTF16("name2")));
259 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57260 new AutofillField(webkit_glue::FormField(string16(),
[email protected]51883692010-08-04 22:02:14261 ASCIIToUTF16("last_name"),
262 string16(),
263 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16264 0,
265 false),
[email protected]51883692010-08-04 22:02:14266 ASCIIToUTF16("name3")));
267 list_.push_back(NULL);
268 iter_ = list_.begin();
269 field_.reset(NameField::Parse(&iter_, false));
270 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
271 ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
272 ASSERT_TRUE(
273 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
274 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
275 ASSERT_TRUE(
276 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
277 EXPECT_EQ(NAME_MIDDLE_INITIAL, field_type_map_[ASCIIToUTF16("name2")]);
278 ASSERT_TRUE(
279 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end());
280 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]);
281}
282
283TEST_F(NameFieldTest, MiddleInitial) {
284 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57285 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("First Name"),
[email protected]51883692010-08-04 22:02:14286 ASCIIToUTF16("first_name"),
287 string16(),
288 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16289 0,
290 false),
[email protected]51883692010-08-04 22:02:14291 ASCIIToUTF16("name1")));
292 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57293 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("MI"),
[email protected]51883692010-08-04 22:02:14294 ASCIIToUTF16("middle_name"),
295 string16(),
296 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16297 0,
298 false),
[email protected]51883692010-08-04 22:02:14299 ASCIIToUTF16("name2")));
300 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57301 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Last Name"),
[email protected]51883692010-08-04 22:02:14302 ASCIIToUTF16("last_name"),
303 string16(),
304 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16305 0,
306 false),
[email protected]51883692010-08-04 22:02:14307 ASCIIToUTF16("name3")));
308 list_.push_back(NULL);
309 iter_ = list_.begin();
310 field_.reset(NameField::Parse(&iter_, false));
311 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
312 ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
313 ASSERT_TRUE(
314 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
315 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
316 ASSERT_TRUE(
317 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
318 EXPECT_EQ(NAME_MIDDLE_INITIAL, field_type_map_[ASCIIToUTF16("name2")]);
319 ASSERT_TRUE(
320 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end());
321 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]);
322}
323
324TEST_F(NameFieldTest, MiddleInitialNoLastName) {
325 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57326 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("First Name"),
[email protected]51883692010-08-04 22:02:14327 ASCIIToUTF16("first_name"),
328 string16(),
329 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16330 0,
331 false),
[email protected]51883692010-08-04 22:02:14332 ASCIIToUTF16("name1")));
333 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57334 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("MI"),
[email protected]51883692010-08-04 22:02:14335 ASCIIToUTF16("middle_name"),
336 string16(),
337 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16338 0,
339 false),
[email protected]51883692010-08-04 22:02:14340 ASCIIToUTF16("name2")));
341 list_.push_back(NULL);
342 iter_ = list_.begin();
343 field_.reset(NameField::Parse(&iter_, false));
344 ASSERT_EQ(static_cast<NameField*>(NULL), field_.get());
345}
346
[email protected]fd529d62010-08-24 22:33:23347// This case is from the dell.com checkout page. The middle initial "mi" string
348// came at the end following other descriptive text. http://crbug.com/45123.
349TEST_F(NameFieldTest, MiddleInitialAtEnd) {
350 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57351 new AutofillField(webkit_glue::FormField(string16(),
[email protected]fd529d62010-08-24 22:33:23352 ASCIIToUTF16("XXXnameXXXfirst"),
353 string16(),
354 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16355 0,
356 false),
[email protected]fd529d62010-08-24 22:33:23357 ASCIIToUTF16("name1")));
358 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57359 new AutofillField(webkit_glue::FormField(string16(),
[email protected]fd529d62010-08-24 22:33:23360 ASCIIToUTF16("XXXnameXXXmi"),
361 string16(),
362 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16363 0,
364 false),
[email protected]fd529d62010-08-24 22:33:23365 ASCIIToUTF16("name2")));
366 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57367 new AutofillField(webkit_glue::FormField(string16(),
[email protected]fd529d62010-08-24 22:33:23368 ASCIIToUTF16("XXXnameXXXlast"),
369 string16(),
370 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16371 0,
372 false),
[email protected]fd529d62010-08-24 22:33:23373 ASCIIToUTF16("name3")));
374 list_.push_back(NULL);
375 iter_ = list_.begin();
376 field_.reset(NameField::Parse(&iter_, false));
377 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
378 ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
379 ASSERT_TRUE(
380 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
381 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
382 ASSERT_TRUE(
383 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
384 EXPECT_EQ(NAME_MIDDLE_INITIAL, field_type_map_[ASCIIToUTF16("name2")]);
385 ASSERT_TRUE(
386 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end());
387 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]);
388}
389
[email protected]51883692010-08-04 22:02:14390TEST_F(NameFieldTest, ECMLNoName) {
[email protected]c87481cd2011-03-04 12:29:57391 list_.push_back(new AutofillField(
[email protected]51883692010-08-04 22:02:14392 webkit_glue::FormField(ASCIIToUTF16("Company"),
393 ASCIIToUTF16("ecom_shipto_postal_company"),
394 string16(),
395 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16396 0,
397 false),
[email protected]51883692010-08-04 22:02:14398 ASCIIToUTF16("field1")));
399 list_.push_back(NULL);
400 iter_ = list_.begin();
401 field_.reset(NameField::Parse(&iter_, true));
402 ASSERT_EQ(static_cast<NameField*>(NULL), field_.get());
403}
404
405TEST_F(NameFieldTest, ECMLMiddleInitialNoLastName) {
[email protected]c87481cd2011-03-04 12:29:57406 list_.push_back(new AutofillField(
[email protected]51883692010-08-04 22:02:14407 webkit_glue::FormField(ASCIIToUTF16("First Name"),
408 ASCIIToUTF16("ecom_shipto_postal_name_first"),
409 string16(),
410 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16411 0,
412 false),
[email protected]51883692010-08-04 22:02:14413 ASCIIToUTF16("name1")));
[email protected]c87481cd2011-03-04 12:29:57414 list_.push_back(new AutofillField(
[email protected]51883692010-08-04 22:02:14415 webkit_glue::FormField(ASCIIToUTF16("Middle"),
416 ASCIIToUTF16("ecom_shipto_postal_name_middle"),
417 string16(),
418 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16419 0,
420 false),
[email protected]51883692010-08-04 22:02:14421 ASCIIToUTF16("name2")));
422 list_.push_back(NULL);
423 iter_ = list_.begin();
424 field_.reset(NameField::Parse(&iter_, true));
425 ASSERT_EQ(static_cast<NameField*>(NULL), field_.get());
426}
427
428TEST_F(NameFieldTest, ECMLFirstMiddleLast) {
[email protected]c87481cd2011-03-04 12:29:57429 list_.push_back(new AutofillField(
[email protected]51883692010-08-04 22:02:14430 webkit_glue::FormField(string16(),
431 ASCIIToUTF16("ecom_shipto_postal_name_first"),
432 string16(),
433 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16434 0,
435 false),
[email protected]51883692010-08-04 22:02:14436 ASCIIToUTF16("name1")));
[email protected]c87481cd2011-03-04 12:29:57437 list_.push_back(new AutofillField(
[email protected]51883692010-08-04 22:02:14438 webkit_glue::FormField(string16(),
439 ASCIIToUTF16("ecom_shipto_postal_name_middle"),
440 string16(),
441 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16442 0,
443 false),
[email protected]51883692010-08-04 22:02:14444 ASCIIToUTF16("name2")));
[email protected]c87481cd2011-03-04 12:29:57445 list_.push_back(new AutofillField(
[email protected]51883692010-08-04 22:02:14446 webkit_glue::FormField(string16(),
447 ASCIIToUTF16("ecom_shipto_postal_name_last"),
448 string16(),
449 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16450 0,
451 false),
[email protected]51883692010-08-04 22:02:14452 ASCIIToUTF16("name3")));
453 list_.push_back(NULL);
454 iter_ = list_.begin();
455 field_.reset(NameField::Parse(&iter_, true));
456 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
457 ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
458 ASSERT_TRUE(
459 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
460 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
461 ASSERT_TRUE(
462 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
463 EXPECT_EQ(NAME_MIDDLE, field_type_map_[ASCIIToUTF16("name2")]);
464 ASSERT_TRUE(
465 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end());
466 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]);
467}
468
[email protected]7519f1a2010-04-08 02:11:36469} // namespace