• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/utf_string_conversions.h"
8 #include "chrome/browser/autofill/address_field.h"
9 #include "chrome/browser/autofill/autofill_field.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "webkit/glue/form_field.h"
12 
13 namespace {
14 
15 class AddressFieldTest : public testing::Test {
16  public:
AddressFieldTest()17   AddressFieldTest() {}
18 
19  protected:
20   ScopedVector<AutofillField> list_;
21   scoped_ptr<AddressField> field_;
22   FieldTypeMap field_type_map_;
23   std::vector<AutofillField*>::const_iterator iter_;
24 
25  private:
26   DISALLOW_COPY_AND_ASSIGN(AddressFieldTest);
27 };
28 
TEST_F(AddressFieldTest,Empty)29 TEST_F(AddressFieldTest, Empty) {
30   list_.push_back(NULL);
31   iter_ = list_.begin();
32   field_.reset(AddressField::Parse(&iter_, false));
33   ASSERT_EQ(static_cast<AddressField*>(NULL), field_.get());
34 }
35 
TEST_F(AddressFieldTest,NonParse)36 TEST_F(AddressFieldTest, NonParse) {
37   list_.push_back(new AutofillField);
38   list_.push_back(NULL);
39   iter_ = list_.begin();
40   field_.reset(AddressField::Parse(&iter_, false));
41   ASSERT_EQ(static_cast<AddressField*>(NULL), field_.get());
42 }
43 
TEST_F(AddressFieldTest,ParseOneLineAddress)44 TEST_F(AddressFieldTest, ParseOneLineAddress) {
45   list_.push_back(
46       new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Address"),
47                                                ASCIIToUTF16("address"),
48                                                string16(),
49                                                ASCIIToUTF16("text"),
50                                                0,
51                                                false),
52                         ASCIIToUTF16("addr1")));
53   list_.push_back(NULL);
54   iter_ = list_.begin();
55   field_.reset(AddressField::Parse(&iter_, false));
56   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
57   EXPECT_EQ(kGenericAddress, field_->FindType());
58   EXPECT_TRUE(field_->IsFullAddress());
59   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
60   ASSERT_TRUE(
61       field_type_map_.find(ASCIIToUTF16("addr1")) != field_type_map_.end());
62   EXPECT_EQ(ADDRESS_HOME_LINE1, field_type_map_[ASCIIToUTF16("addr1")]);
63 }
64 
TEST_F(AddressFieldTest,ParseOneLineAddressBilling)65 TEST_F(AddressFieldTest, ParseOneLineAddressBilling) {
66   list_.push_back(
67       new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Address"),
68                                                ASCIIToUTF16("billingAddress"),
69                                                string16(),
70                                                ASCIIToUTF16("text"),
71                                                0,
72                                                false),
73                         ASCIIToUTF16("addr1")));
74   list_.push_back(NULL);
75   iter_ = list_.begin();
76   field_.reset(AddressField::Parse(&iter_, false));
77   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
78   EXPECT_EQ(kBillingAddress, field_->FindType());
79   EXPECT_TRUE(field_->IsFullAddress());
80   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
81   ASSERT_TRUE(
82       field_type_map_.find(ASCIIToUTF16("addr1")) != field_type_map_.end());
83   EXPECT_EQ(ADDRESS_HOME_LINE1, field_type_map_[ASCIIToUTF16("addr1")]);
84 }
85 
TEST_F(AddressFieldTest,ParseOneLineAddressShipping)86 TEST_F(AddressFieldTest, ParseOneLineAddressShipping) {
87   list_.push_back(
88       new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Address"),
89                                                ASCIIToUTF16("shippingAddress"),
90                                                string16(),
91                                                ASCIIToUTF16("text"),
92                                                0,
93                                                false),
94                         ASCIIToUTF16("addr1")));
95   list_.push_back(NULL);
96   iter_ = list_.begin();
97   field_.reset(AddressField::Parse(&iter_, false));
98   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
99   EXPECT_EQ(kShippingAddress, field_->FindType());
100   EXPECT_TRUE(field_->IsFullAddress());
101   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
102   ASSERT_TRUE(
103       field_type_map_.find(ASCIIToUTF16("addr1")) != field_type_map_.end());
104   EXPECT_EQ(ADDRESS_HOME_LINE1, field_type_map_[ASCIIToUTF16("addr1")]);
105 }
106 
TEST_F(AddressFieldTest,ParseOneLineAddressEcml)107 TEST_F(AddressFieldTest, ParseOneLineAddressEcml) {
108   list_.push_back(
109       new AutofillField(
110           webkit_glue::FormField(ASCIIToUTF16("Address"),
111                                  ASCIIToUTF16(kEcmlShipToAddress1),
112                                  string16(),
113                                  ASCIIToUTF16("text"),
114                                  0,
115                                  false),
116           ASCIIToUTF16("addr1")));
117   list_.push_back(NULL);
118   iter_ = list_.begin();
119   field_.reset(AddressField::Parse(&iter_, true));
120   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
121   EXPECT_EQ(kShippingAddress, field_->FindType());
122   EXPECT_TRUE(field_->IsFullAddress());
123   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
124   ASSERT_TRUE(
125       field_type_map_.find(ASCIIToUTF16("addr1")) != field_type_map_.end());
126   EXPECT_EQ(ADDRESS_HOME_LINE1, field_type_map_[ASCIIToUTF16("addr1")]);
127 }
128 
TEST_F(AddressFieldTest,ParseTwoLineAddress)129 TEST_F(AddressFieldTest, ParseTwoLineAddress) {
130   list_.push_back(
131       new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Address"),
132                                                ASCIIToUTF16("address"),
133                                                string16(),
134                                                ASCIIToUTF16("text"),
135                                                0,
136                                                false),
137                         ASCIIToUTF16("addr1")));
138   list_.push_back(
139       new AutofillField(webkit_glue::FormField(string16(),
140                                                string16(),
141                                                string16(),
142                                                ASCIIToUTF16("text"),
143                                                0,
144                                                false),
145                         ASCIIToUTF16("addr2")));
146   list_.push_back(NULL);
147   iter_ = list_.begin();
148   field_.reset(AddressField::Parse(&iter_, false));
149   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
150   EXPECT_EQ(kGenericAddress, field_->FindType());
151   EXPECT_TRUE(field_->IsFullAddress());
152   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
153   ASSERT_TRUE(
154       field_type_map_.find(ASCIIToUTF16("addr1")) != field_type_map_.end());
155   EXPECT_EQ(ADDRESS_HOME_LINE1, field_type_map_[ASCIIToUTF16("addr1")]);
156   ASSERT_TRUE(
157       field_type_map_.find(ASCIIToUTF16("addr2")) != field_type_map_.end());
158   EXPECT_EQ(ADDRESS_HOME_LINE2, field_type_map_[ASCIIToUTF16("addr2")]);
159 }
160 
TEST_F(AddressFieldTest,ParseThreeLineAddress)161 TEST_F(AddressFieldTest, ParseThreeLineAddress) {
162   list_.push_back(
163       new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Address Line1"),
164                                                ASCIIToUTF16("Address"),
165                                                string16(),
166                                                ASCIIToUTF16("text"),
167                                                0,
168                                                false),
169                         ASCIIToUTF16("addr1")));
170   list_.push_back(
171       new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Address Line2"),
172                                                ASCIIToUTF16("Address"),
173                                                string16(),
174                                                ASCIIToUTF16("text"),
175                                                0,
176                                                false),
177                         ASCIIToUTF16("addr2")));
178   list_.push_back(
179       new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Address Line3"),
180                                                ASCIIToUTF16("Address"),
181                                                string16(),
182                                                ASCIIToUTF16("text"),
183                                                0,
184                                                false),
185                         ASCIIToUTF16("addr3")));
186   list_.push_back(NULL);
187   iter_ = list_.begin();
188   field_.reset(AddressField::Parse(&iter_, false));
189   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
190   EXPECT_EQ(kGenericAddress, field_->FindType());
191   EXPECT_TRUE(field_->IsFullAddress());
192   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
193   ASSERT_TRUE(
194       field_type_map_.find(ASCIIToUTF16("addr1")) != field_type_map_.end());
195   EXPECT_EQ(ADDRESS_HOME_LINE1, field_type_map_[ASCIIToUTF16("addr1")]);
196   ASSERT_TRUE(
197       field_type_map_.find(ASCIIToUTF16("addr2")) != field_type_map_.end());
198   EXPECT_EQ(ADDRESS_HOME_LINE2, field_type_map_[ASCIIToUTF16("addr2")]);
199   ASSERT_TRUE(
200       field_type_map_.find(ASCIIToUTF16("addr3")) == field_type_map_.end());
201 }
202 
TEST_F(AddressFieldTest,ParseTwoLineAddressEcml)203 TEST_F(AddressFieldTest, ParseTwoLineAddressEcml) {
204   list_.push_back(
205       new AutofillField(
206           webkit_glue::FormField(ASCIIToUTF16("Address"),
207                                  ASCIIToUTF16(kEcmlShipToAddress1),
208                                  string16(),
209                                  ASCIIToUTF16("text"),
210                                  0,
211                                  false),
212           ASCIIToUTF16("addr1")));
213   list_.push_back(
214       new AutofillField(
215           webkit_glue::FormField(string16(),
216                                  ASCIIToUTF16(kEcmlShipToAddress2),
217                                  string16(),
218                                  ASCIIToUTF16("text"),
219                                  0,
220                                  false),
221           ASCIIToUTF16("addr2")));
222   list_.push_back(NULL);
223   iter_ = list_.begin();
224   field_.reset(AddressField::Parse(&iter_, true));
225   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
226   EXPECT_EQ(kShippingAddress, field_->FindType());
227   EXPECT_TRUE(field_->IsFullAddress());
228   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
229   ASSERT_TRUE(
230       field_type_map_.find(ASCIIToUTF16("addr1")) != field_type_map_.end());
231   EXPECT_EQ(ADDRESS_HOME_LINE1, field_type_map_[ASCIIToUTF16("addr1")]);
232   ASSERT_TRUE(
233       field_type_map_.find(ASCIIToUTF16("addr2")) != field_type_map_.end());
234   EXPECT_EQ(ADDRESS_HOME_LINE2, field_type_map_[ASCIIToUTF16("addr2")]);
235 }
236 
TEST_F(AddressFieldTest,ParseCity)237 TEST_F(AddressFieldTest, ParseCity) {
238   list_.push_back(
239       new AutofillField(webkit_glue::FormField(ASCIIToUTF16("City"),
240                                                ASCIIToUTF16("city"),
241                                                string16(),
242                                                ASCIIToUTF16("text"),
243                                                0,
244                                                false),
245                         ASCIIToUTF16("city1")));
246   list_.push_back(NULL);
247   iter_ = list_.begin();
248   field_.reset(AddressField::Parse(&iter_, false));
249   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
250   EXPECT_EQ(kGenericAddress, field_->FindType());
251   EXPECT_FALSE(field_->IsFullAddress());
252   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
253   ASSERT_TRUE(
254       field_type_map_.find(ASCIIToUTF16("city1")) != field_type_map_.end());
255   EXPECT_EQ(ADDRESS_HOME_CITY, field_type_map_[ASCIIToUTF16("city1")]);
256 }
257 
TEST_F(AddressFieldTest,ParseCityEcml)258 TEST_F(AddressFieldTest, ParseCityEcml) {
259   list_.push_back(
260       new AutofillField(webkit_glue::FormField(ASCIIToUTF16("City"),
261                                                ASCIIToUTF16(kEcmlShipToCity),
262                                                string16(),
263                                                ASCIIToUTF16("text"),
264                                                0,
265                                                false),
266                         ASCIIToUTF16("city1")));
267   list_.push_back(NULL);
268   iter_ = list_.begin();
269   field_.reset(AddressField::Parse(&iter_, true));
270   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
271   EXPECT_EQ(kGenericAddress, field_->FindType());
272   EXPECT_FALSE(field_->IsFullAddress());
273   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
274   ASSERT_TRUE(
275       field_type_map_.find(ASCIIToUTF16("city1")) != field_type_map_.end());
276   EXPECT_EQ(ADDRESS_HOME_CITY, field_type_map_[ASCIIToUTF16("city1")]);
277 }
278 
TEST_F(AddressFieldTest,ParseState)279 TEST_F(AddressFieldTest, ParseState) {
280   list_.push_back(
281       new AutofillField(webkit_glue::FormField(ASCIIToUTF16("State"),
282                                                ASCIIToUTF16("state"),
283                                                string16(),
284                                                ASCIIToUTF16("text"),
285                                                0,
286                                                false),
287                         ASCIIToUTF16("state1")));
288   list_.push_back(NULL);
289   iter_ = list_.begin();
290   field_.reset(AddressField::Parse(&iter_, false));
291   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
292   EXPECT_EQ(kGenericAddress, field_->FindType());
293   EXPECT_FALSE(field_->IsFullAddress());
294   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
295   ASSERT_TRUE(
296       field_type_map_.find(ASCIIToUTF16("state1")) != field_type_map_.end());
297   EXPECT_EQ(ADDRESS_HOME_STATE, field_type_map_[ASCIIToUTF16("state1")]);
298 }
299 
TEST_F(AddressFieldTest,ParseStateEcml)300 TEST_F(AddressFieldTest, ParseStateEcml) {
301   list_.push_back(
302       new AutofillField(
303           webkit_glue::FormField(ASCIIToUTF16("State"),
304                                  ASCIIToUTF16(kEcmlShipToStateProv),
305                                  string16(),
306                                  ASCIIToUTF16("text"),
307                                  0,
308                                  false),
309           ASCIIToUTF16("state1")));
310   list_.push_back(NULL);
311   iter_ = list_.begin();
312   field_.reset(AddressField::Parse(&iter_, true));
313   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
314   EXPECT_EQ(kGenericAddress, field_->FindType());
315   EXPECT_FALSE(field_->IsFullAddress());
316   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
317   ASSERT_TRUE(
318       field_type_map_.find(ASCIIToUTF16("state1")) != field_type_map_.end());
319   EXPECT_EQ(ADDRESS_HOME_STATE, field_type_map_[ASCIIToUTF16("state1")]);
320 }
321 
TEST_F(AddressFieldTest,ParseZip)322 TEST_F(AddressFieldTest, ParseZip) {
323   list_.push_back(
324       new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Zip"),
325                                                ASCIIToUTF16("zip"),
326                                                string16(),
327                                                ASCIIToUTF16("text"),
328                                                0,
329                                                false),
330                         ASCIIToUTF16("zip1")));
331   list_.push_back(NULL);
332   iter_ = list_.begin();
333   field_.reset(AddressField::Parse(&iter_, false));
334   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
335   EXPECT_EQ(kGenericAddress, field_->FindType());
336   EXPECT_FALSE(field_->IsFullAddress());
337   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
338   ASSERT_TRUE(
339       field_type_map_.find(ASCIIToUTF16("zip1")) != field_type_map_.end());
340   EXPECT_EQ(ADDRESS_HOME_ZIP, field_type_map_[ASCIIToUTF16("zip1")]);
341 }
342 
TEST_F(AddressFieldTest,ParseZipEcml)343 TEST_F(AddressFieldTest, ParseZipEcml) {
344   list_.push_back(
345       new AutofillField(
346           webkit_glue::FormField(ASCIIToUTF16("Zip"),
347                                  ASCIIToUTF16(kEcmlShipToPostalCode),
348                                  string16(),
349                                  ASCIIToUTF16("text"),
350                                  0,
351                                  false),
352                         ASCIIToUTF16("zip1")));
353   list_.push_back(NULL);
354   iter_ = list_.begin();
355   field_.reset(AddressField::Parse(&iter_, true));
356   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
357   EXPECT_EQ(kGenericAddress, field_->FindType());
358   EXPECT_FALSE(field_->IsFullAddress());
359   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
360   ASSERT_TRUE(
361       field_type_map_.find(ASCIIToUTF16("zip1")) != field_type_map_.end());
362   EXPECT_EQ(ADDRESS_HOME_ZIP, field_type_map_[ASCIIToUTF16("zip1")]);
363 }
364 
TEST_F(AddressFieldTest,ParseStateAndZipOneLabel)365 TEST_F(AddressFieldTest, ParseStateAndZipOneLabel) {
366   list_.push_back(
367       new AutofillField(
368           webkit_glue::FormField(
369               ASCIIToUTF16("State/Province, Zip/Postal Code"),
370               ASCIIToUTF16("state"),
371               string16(),
372               ASCIIToUTF16("text"),
373               0,
374               false),
375           ASCIIToUTF16("state")));
376   list_.push_back(
377       new AutofillField(
378           webkit_glue::FormField(
379               ASCIIToUTF16("State/Province, Zip/Postal Code"),
380               ASCIIToUTF16("zip"),
381               string16(),
382               ASCIIToUTF16("text"),
383               0,
384               false),
385           ASCIIToUTF16("zip")));
386   list_.push_back(NULL);
387   iter_ = list_.begin();
388   field_.reset(AddressField::Parse(&iter_, false));
389   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
390   EXPECT_EQ(kGenericAddress, field_->FindType());
391   EXPECT_FALSE(field_->IsFullAddress());
392   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
393   ASSERT_TRUE(
394       field_type_map_.find(ASCIIToUTF16("state")) != field_type_map_.end());
395   EXPECT_EQ(ADDRESS_HOME_STATE, field_type_map_[ASCIIToUTF16("state")]);
396   ASSERT_TRUE(
397       field_type_map_.find(ASCIIToUTF16("zip")) != field_type_map_.end());
398   EXPECT_EQ(ADDRESS_HOME_ZIP, field_type_map_[ASCIIToUTF16("zip")]);
399 }
400 
TEST_F(AddressFieldTest,ParseCountry)401 TEST_F(AddressFieldTest, ParseCountry) {
402   list_.push_back(
403       new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Country"),
404                                                ASCIIToUTF16("country"),
405                                                string16(),
406                                                ASCIIToUTF16("text"),
407                                                0,
408                                                false),
409                         ASCIIToUTF16("country1")));
410   list_.push_back(NULL);
411   iter_ = list_.begin();
412   field_.reset(AddressField::Parse(&iter_, false));
413   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
414   EXPECT_EQ(kGenericAddress, field_->FindType());
415   EXPECT_FALSE(field_->IsFullAddress());
416   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
417   ASSERT_TRUE(
418       field_type_map_.find(ASCIIToUTF16("country1")) != field_type_map_.end());
419   EXPECT_EQ(ADDRESS_HOME_COUNTRY, field_type_map_[ASCIIToUTF16("country1")]);
420 }
421 
TEST_F(AddressFieldTest,ParseCountryEcml)422 TEST_F(AddressFieldTest, ParseCountryEcml) {
423   list_.push_back(
424       new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Country"),
425                                                ASCIIToUTF16(kEcmlShipToCountry),
426                                                string16(),
427                                                ASCIIToUTF16("text"),
428                                                0,
429                                                false),
430                         ASCIIToUTF16("country1")));
431   list_.push_back(NULL);
432   iter_ = list_.begin();
433   field_.reset(AddressField::Parse(&iter_, true));
434   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
435   EXPECT_EQ(kGenericAddress, field_->FindType());
436   EXPECT_FALSE(field_->IsFullAddress());
437   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
438   ASSERT_TRUE(
439       field_type_map_.find(ASCIIToUTF16("country1")) != field_type_map_.end());
440   EXPECT_EQ(ADDRESS_HOME_COUNTRY, field_type_map_[ASCIIToUTF16("country1")]);
441 }
442 
TEST_F(AddressFieldTest,ParseTwoLineAddressMissingLabel)443 TEST_F(AddressFieldTest, ParseTwoLineAddressMissingLabel) {
444   list_.push_back(
445       new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Address"),
446                                                ASCIIToUTF16("address"),
447                                                string16(),
448                                                ASCIIToUTF16("text"),
449                                                0,
450                                                false),
451                         ASCIIToUTF16("addr1")));
452   list_.push_back(
453       new AutofillField(webkit_glue::FormField(string16(),
454                                                ASCIIToUTF16("bogus"),
455                                                string16(),
456                                                ASCIIToUTF16("text"),
457                                                0,
458                                                false),
459                         ASCIIToUTF16("addr2")));
460   list_.push_back(NULL);
461   iter_ = list_.begin();
462   field_.reset(AddressField::Parse(&iter_, false));
463   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
464   EXPECT_EQ(kGenericAddress, field_->FindType());
465   EXPECT_TRUE(field_->IsFullAddress());
466   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
467   ASSERT_TRUE(
468       field_type_map_.find(ASCIIToUTF16("addr1")) != field_type_map_.end());
469   EXPECT_EQ(ADDRESS_HOME_LINE1, field_type_map_[ASCIIToUTF16("addr1")]);
470   ASSERT_TRUE(
471       field_type_map_.find(ASCIIToUTF16("addr2")) != field_type_map_.end());
472   EXPECT_EQ(ADDRESS_HOME_LINE2, field_type_map_[ASCIIToUTF16("addr2")]);
473 }
474 
TEST_F(AddressFieldTest,ParseCompany)475 TEST_F(AddressFieldTest, ParseCompany) {
476   list_.push_back(
477       new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Company"),
478                                                ASCIIToUTF16("company"),
479                                                string16(),
480                                                ASCIIToUTF16("text"),
481                                                0,
482                                                false),
483                         ASCIIToUTF16("company1")));
484   list_.push_back(NULL);
485   iter_ = list_.begin();
486   field_.reset(AddressField::Parse(&iter_, false));
487   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
488   EXPECT_EQ(kGenericAddress, field_->FindType());
489   EXPECT_FALSE(field_->IsFullAddress());
490   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
491   ASSERT_TRUE(
492       field_type_map_.find(ASCIIToUTF16("company1")) != field_type_map_.end());
493   EXPECT_EQ(COMPANY_NAME, field_type_map_[ASCIIToUTF16("company1")]);
494 }
495 
TEST_F(AddressFieldTest,ParseCompanyEcml)496 TEST_F(AddressFieldTest, ParseCompanyEcml) {
497   list_.push_back(
498       new AutofillField(
499           webkit_glue::FormField(ASCIIToUTF16("Company"),
500                                  ASCIIToUTF16(kEcmlShipToCompanyName),
501                                  string16(),
502                                  ASCIIToUTF16("text"),
503                                  0,
504                                  false),
505           ASCIIToUTF16("company1")));
506   list_.push_back(NULL);
507   iter_ = list_.begin();
508   field_.reset(AddressField::Parse(&iter_, true));
509   ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
510   EXPECT_EQ(kGenericAddress, field_->FindType());
511   EXPECT_FALSE(field_->IsFullAddress());
512   ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
513   ASSERT_TRUE(
514       field_type_map_.find(ASCIIToUTF16("company1")) != field_type_map_.end());
515   EXPECT_EQ(COMPANY_NAME, field_type_map_[ASCIIToUTF16("company1")]);
516 }
517 
518 }  // namespace
519