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

Side by Side Diff: components/autofill/browser/address_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/string16.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "components/autofill/browser/address_field.h"
10 #include "components/autofill/browser/autofill_field.h"
11 #include "components/autofill/browser/autofill_scanner.h"
12 #include "components/autofill/core/common/form_field_data.h"
13 #include "testing/gtest/include/gtest/gtest.h"
14
15 namespace autofill {
16
17 class AddressFieldTest : public testing::Test {
18 public:
19 AddressFieldTest() {}
20
21 protected:
22 ScopedVector<const AutofillField> list_;
23 scoped_ptr<AddressField> field_;
24 FieldTypeMap field_type_map_;
25
26 // Downcast for tests.
27 static AddressField* Parse(AutofillScanner* scanner) {
28 return static_cast<AddressField*>(AddressField::Parse(scanner));
29 }
30
31 private:
32 DISALLOW_COPY_AND_ASSIGN(AddressFieldTest);
33 };
34
35 TEST_F(AddressFieldTest, Empty) {
36 AutofillScanner scanner(list_.get());
37 field_.reset(Parse(&scanner));
38 ASSERT_EQ(static_cast<AddressField*>(NULL), field_.get());
39 }
40
41 TEST_F(AddressFieldTest, NonParse) {
42 list_.push_back(new AutofillField);
43 AutofillScanner scanner(list_.get());
44 field_.reset(Parse(&scanner));
45 ASSERT_EQ(static_cast<AddressField*>(NULL), field_.get());
46 }
47
48 TEST_F(AddressFieldTest, ParseOneLineAddress) {
49 FormFieldData field;
50 field.form_control_type = "text";
51
52 field.label = ASCIIToUTF16("Address");
53 field.name = ASCIIToUTF16("address");
54 list_.push_back(new AutofillField(field, ASCIIToUTF16("addr1")));
55
56 AutofillScanner scanner(list_.get());
57 field_.reset(Parse(&scanner));
58 ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
59 EXPECT_EQ(AddressField::kGenericAddress, field_->FindType());
60 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
61 ASSERT_TRUE(
62 field_type_map_.find(ASCIIToUTF16("addr1")) != field_type_map_.end());
63 EXPECT_EQ(ADDRESS_HOME_LINE1, field_type_map_[ASCIIToUTF16("addr1")]);
64 }
65
66 TEST_F(AddressFieldTest, ParseOneLineAddressBilling) {
67 FormFieldData field;
68 field.form_control_type = "text";
69
70 field.label = ASCIIToUTF16("Address");
71 field.name = ASCIIToUTF16("billingAddress");
72 list_.push_back(new AutofillField(field, ASCIIToUTF16("addr1")));
73
74 AutofillScanner scanner(list_.get());
75 field_.reset(Parse(&scanner));
76 ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
77 EXPECT_EQ(AddressField::kBillingAddress, field_->FindType());
78 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
79 ASSERT_TRUE(
80 field_type_map_.find(ASCIIToUTF16("addr1")) != field_type_map_.end());
81 EXPECT_EQ(ADDRESS_BILLING_LINE1, field_type_map_[ASCIIToUTF16("addr1")]);
82 }
83
84 TEST_F(AddressFieldTest, ParseOneLineAddressShipping) {
85 FormFieldData field;
86 field.form_control_type = "text";
87
88 field.label = ASCIIToUTF16("Address");
89 field.name = ASCIIToUTF16("shippingAddress");
90 list_.push_back(new AutofillField(field, ASCIIToUTF16("addr1")));
91
92 AutofillScanner scanner(list_.get());
93 field_.reset(Parse(&scanner));
94 ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
95 EXPECT_EQ(AddressField::kShippingAddress, field_->FindType());
96 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
97 ASSERT_TRUE(
98 field_type_map_.find(ASCIIToUTF16("addr1")) != field_type_map_.end());
99 EXPECT_EQ(ADDRESS_HOME_LINE1, field_type_map_[ASCIIToUTF16("addr1")]);
100 }
101
102 TEST_F(AddressFieldTest, ParseTwoLineAddress) {
103 FormFieldData field;
104 field.form_control_type = "text";
105
106 field.label = ASCIIToUTF16("Address");
107 field.name = ASCIIToUTF16("address");
108 list_.push_back(new AutofillField(field, ASCIIToUTF16("addr1")));
109
110 field.label = base::string16();
111 field.name = base::string16();
112 list_.push_back(new AutofillField(field, ASCIIToUTF16("addr2")));
113
114 AutofillScanner scanner(list_.get());
115 field_.reset(Parse(&scanner));
116 ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
117 EXPECT_EQ(AddressField::kGenericAddress, field_->FindType());
118 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
119 ASSERT_TRUE(
120 field_type_map_.find(ASCIIToUTF16("addr1")) != field_type_map_.end());
121 EXPECT_EQ(ADDRESS_HOME_LINE1, field_type_map_[ASCIIToUTF16("addr1")]);
122 ASSERT_TRUE(
123 field_type_map_.find(ASCIIToUTF16("addr2")) != field_type_map_.end());
124 EXPECT_EQ(ADDRESS_HOME_LINE2, field_type_map_[ASCIIToUTF16("addr2")]);
125 }
126
127 TEST_F(AddressFieldTest, ParseThreeLineAddress) {
128 FormFieldData field;
129 field.form_control_type = "text";
130
131 field.label = ASCIIToUTF16("Address Line1");
132 field.name = ASCIIToUTF16("Address1");
133 list_.push_back(new AutofillField(field, ASCIIToUTF16("addr1")));
134
135 field.label = ASCIIToUTF16("Address Line2");
136 field.name = ASCIIToUTF16("Address2");
137 list_.push_back(new AutofillField(field, ASCIIToUTF16("addr2")));
138
139 field.label = ASCIIToUTF16("Address Line3");
140 field.name = ASCIIToUTF16("Address3");
141 list_.push_back(new AutofillField(field, ASCIIToUTF16("addr3")));
142
143 AutofillScanner scanner(list_.get());
144 field_.reset(Parse(&scanner));
145 ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
146 EXPECT_EQ(AddressField::kGenericAddress, field_->FindType());
147 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
148 ASSERT_TRUE(
149 field_type_map_.find(ASCIIToUTF16("addr1")) != field_type_map_.end());
150 EXPECT_EQ(ADDRESS_HOME_LINE1, field_type_map_[ASCIIToUTF16("addr1")]);
151 ASSERT_TRUE(
152 field_type_map_.find(ASCIIToUTF16("addr2")) != field_type_map_.end());
153 EXPECT_EQ(ADDRESS_HOME_LINE2, field_type_map_[ASCIIToUTF16("addr2")]);
154 ASSERT_TRUE(
155 field_type_map_.find(ASCIIToUTF16("addr3")) == field_type_map_.end());
156 }
157
158 TEST_F(AddressFieldTest, ParseCity) {
159 FormFieldData field;
160 field.form_control_type = "text";
161
162 field.label = ASCIIToUTF16("City");
163 field.name = ASCIIToUTF16("city");
164 list_.push_back(new AutofillField(field, ASCIIToUTF16("city1")));
165
166 AutofillScanner scanner(list_.get());
167 field_.reset(Parse(&scanner));
168 ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
169 EXPECT_EQ(AddressField::kGenericAddress, field_->FindType());
170 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
171 ASSERT_TRUE(
172 field_type_map_.find(ASCIIToUTF16("city1")) != field_type_map_.end());
173 EXPECT_EQ(ADDRESS_HOME_CITY, field_type_map_[ASCIIToUTF16("city1")]);
174 }
175
176 TEST_F(AddressFieldTest, ParseState) {
177 FormFieldData field;
178 field.form_control_type = "text";
179
180 field.label = ASCIIToUTF16("State");
181 field.name = ASCIIToUTF16("state");
182 list_.push_back(new AutofillField(field, ASCIIToUTF16("state1")));
183
184 AutofillScanner scanner(list_.get());
185 field_.reset(Parse(&scanner));
186 ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
187 EXPECT_EQ(AddressField::kGenericAddress, field_->FindType());
188 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
189 ASSERT_TRUE(
190 field_type_map_.find(ASCIIToUTF16("state1")) != field_type_map_.end());
191 EXPECT_EQ(ADDRESS_HOME_STATE, field_type_map_[ASCIIToUTF16("state1")]);
192 }
193
194 TEST_F(AddressFieldTest, ParseZip) {
195 FormFieldData field;
196 field.form_control_type = "text";
197
198 field.label = ASCIIToUTF16("Zip");
199 field.name = ASCIIToUTF16("zip");
200 list_.push_back(new AutofillField(field, ASCIIToUTF16("zip1")));
201
202 AutofillScanner scanner(list_.get());
203 field_.reset(Parse(&scanner));
204 ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
205 EXPECT_EQ(AddressField::kGenericAddress, field_->FindType());
206 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
207 ASSERT_TRUE(
208 field_type_map_.find(ASCIIToUTF16("zip1")) != field_type_map_.end());
209 EXPECT_EQ(ADDRESS_HOME_ZIP, field_type_map_[ASCIIToUTF16("zip1")]);
210 }
211
212 TEST_F(AddressFieldTest, ParseStateAndZipOneLabel) {
213 FormFieldData field;
214 field.form_control_type = "text";
215
216 field.label = ASCIIToUTF16("State/Province, Zip/Postal Code");
217 field.name = ASCIIToUTF16("state");
218 list_.push_back(new AutofillField(field, ASCIIToUTF16("state")));
219
220 field.label = ASCIIToUTF16("State/Province, Zip/Postal Code");
221 field.name = ASCIIToUTF16("zip");
222 list_.push_back(new AutofillField(field, ASCIIToUTF16("zip")));
223
224 AutofillScanner scanner(list_.get());
225 field_.reset(Parse(&scanner));
226 ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
227 EXPECT_EQ(AddressField::kGenericAddress, field_->FindType());
228 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
229 ASSERT_TRUE(
230 field_type_map_.find(ASCIIToUTF16("state")) != field_type_map_.end());
231 EXPECT_EQ(ADDRESS_HOME_STATE, field_type_map_[ASCIIToUTF16("state")]);
232 ASSERT_TRUE(
233 field_type_map_.find(ASCIIToUTF16("zip")) != field_type_map_.end());
234 EXPECT_EQ(ADDRESS_HOME_ZIP, field_type_map_[ASCIIToUTF16("zip")]);
235 }
236
237 TEST_F(AddressFieldTest, ParseCountry) {
238 FormFieldData field;
239 field.form_control_type = "text";
240
241 field.label = ASCIIToUTF16("Country");
242 field.name = ASCIIToUTF16("country");
243 list_.push_back(new AutofillField(field, ASCIIToUTF16("country1")));
244
245 AutofillScanner scanner(list_.get());
246 field_.reset(Parse(&scanner));
247 ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
248 EXPECT_EQ(AddressField::kGenericAddress, field_->FindType());
249 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
250 ASSERT_TRUE(
251 field_type_map_.find(ASCIIToUTF16("country1")) != field_type_map_.end());
252 EXPECT_EQ(ADDRESS_HOME_COUNTRY, field_type_map_[ASCIIToUTF16("country1")]);
253 }
254
255 TEST_F(AddressFieldTest, ParseTwoLineAddressMissingLabel) {
256 FormFieldData field;
257 field.form_control_type = "text";
258
259 field.label = ASCIIToUTF16("Address");
260 field.name = ASCIIToUTF16("address");
261 list_.push_back(new AutofillField(field, ASCIIToUTF16("addr1")));
262
263 field.label = base::string16();
264 field.name = ASCIIToUTF16("bogus");
265 list_.push_back(new AutofillField(field, ASCIIToUTF16("addr2")));
266
267 AutofillScanner scanner(list_.get());
268 field_.reset(Parse(&scanner));
269 ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
270 EXPECT_EQ(AddressField::kGenericAddress, field_->FindType());
271 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
272 ASSERT_TRUE(
273 field_type_map_.find(ASCIIToUTF16("addr1")) != field_type_map_.end());
274 EXPECT_EQ(ADDRESS_HOME_LINE1, field_type_map_[ASCIIToUTF16("addr1")]);
275 ASSERT_TRUE(
276 field_type_map_.find(ASCIIToUTF16("addr2")) != field_type_map_.end());
277 EXPECT_EQ(ADDRESS_HOME_LINE2, field_type_map_[ASCIIToUTF16("addr2")]);
278 }
279
280 TEST_F(AddressFieldTest, ParseCompany) {
281 FormFieldData field;
282 field.form_control_type = "text";
283
284 field.label = ASCIIToUTF16("Company");
285 field.name = ASCIIToUTF16("company");
286 list_.push_back(new AutofillField(field, ASCIIToUTF16("company1")));
287
288 AutofillScanner scanner(list_.get());
289 field_.reset(Parse(&scanner));
290 ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
291 EXPECT_EQ(AddressField::kGenericAddress, field_->FindType());
292 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
293 ASSERT_TRUE(
294 field_type_map_.find(ASCIIToUTF16("company1")) != field_type_map_.end());
295 EXPECT_EQ(COMPANY_NAME, field_type_map_[ASCIIToUTF16("company1")]);
296 }
297
298 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/browser/address_field.cc ('k') | components/autofill/browser/address_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698