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