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