| 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 |