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

Side by Side Diff: chrome/browser/autofill/address_field_unittest.cc

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

Powered by Google App Engine
This is Rietveld 408576698