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

Side by Side Diff: components/autofill/core/browser/name_field_unittest.cc

Issue 2609703002: Remove ScopedVector from autofill. (Closed)
Patch Set: drop the using Created 3 years, 11 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
OLDNEW
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/name_field.h" 5 #include "components/autofill/core/browser/name_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/utf_string_conversions.h" 12 #include "base/strings/utf_string_conversions.h"
13 #include "components/autofill/core/browser/autofill_field.h" 13 #include "components/autofill/core/browser/autofill_field.h"
14 #include "components/autofill/core/browser/autofill_scanner.h" 14 #include "components/autofill/core/browser/autofill_scanner.h"
15 #include "components/autofill/core/common/form_field_data.h" 15 #include "components/autofill/core/common/form_field_data.h"
16 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
17 17
18 using base::ASCIIToUTF16; 18 using base::ASCIIToUTF16;
19 19
20 namespace autofill { 20 namespace autofill {
21 21
22 class NameFieldTest : public testing::Test { 22 class NameFieldTest : public testing::Test {
23 public: 23 public:
24 NameFieldTest() {} 24 NameFieldTest() {}
25 25
26 protected: 26 protected:
27 ScopedVector<AutofillField> list_; 27 std::vector<std::unique_ptr<AutofillField>> list_;
28 std::unique_ptr<NameField> field_; 28 std::unique_ptr<NameField> field_;
29 FieldCandidatesMap field_candidates_map_; 29 FieldCandidatesMap field_candidates_map_;
30 30
31 // Downcast for tests. 31 // Downcast for tests.
32 static std::unique_ptr<NameField> Parse(AutofillScanner* scanner) { 32 static std::unique_ptr<NameField> Parse(AutofillScanner* scanner) {
33 std::unique_ptr<FormField> field = NameField::Parse(scanner); 33 std::unique_ptr<FormField> field = NameField::Parse(scanner);
34 return base::WrapUnique(static_cast<NameField*>(field.release())); 34 return base::WrapUnique(static_cast<NameField*>(field.release()));
35 } 35 }
36 36
37 private: 37 private:
38 DISALLOW_COPY_AND_ASSIGN(NameFieldTest); 38 DISALLOW_COPY_AND_ASSIGN(NameFieldTest);
39 }; 39 };
40 40
41 TEST_F(NameFieldTest, FirstMiddleLast) { 41 TEST_F(NameFieldTest, FirstMiddleLast) {
42 FormFieldData field; 42 FormFieldData field;
43 field.form_control_type = "text"; 43 field.form_control_type = "text";
44 44
45 field.label = ASCIIToUTF16("First Name"); 45 field.label = ASCIIToUTF16("First Name");
46 field.name = ASCIIToUTF16("First"); 46 field.name = ASCIIToUTF16("First");
47 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); 47 list_.push_back(
48 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name1")));
48 49
49 field.label = ASCIIToUTF16("Middle Name"); 50 field.label = ASCIIToUTF16("Middle Name");
50 field.name = ASCIIToUTF16("Middle"); 51 field.name = ASCIIToUTF16("Middle");
51 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2"))); 52 list_.push_back(
53 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name2")));
52 54
53 field.label = ASCIIToUTF16("Last Name"); 55 field.label = ASCIIToUTF16("Last Name");
54 field.name = ASCIIToUTF16("Last"); 56 field.name = ASCIIToUTF16("Last");
55 list_.push_back(new AutofillField(field, ASCIIToUTF16("name3"))); 57 list_.push_back(
58 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name3")));
56 59
57 AutofillScanner scanner(list_.get()); 60 AutofillScanner scanner(list_);
58 field_ = Parse(&scanner); 61 field_ = Parse(&scanner);
59 ASSERT_NE(nullptr, field_.get()); 62 ASSERT_NE(nullptr, field_.get());
60 field_->AddClassifications(&field_candidates_map_); 63 field_->AddClassifications(&field_candidates_map_);
61 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) != 64 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) !=
62 field_candidates_map_.end()); 65 field_candidates_map_.end());
63 EXPECT_EQ(NAME_FIRST, 66 EXPECT_EQ(NAME_FIRST,
64 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType()); 67 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType());
65 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) != 68 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) !=
66 field_candidates_map_.end()); 69 field_candidates_map_.end());
67 EXPECT_EQ(NAME_MIDDLE, 70 EXPECT_EQ(NAME_MIDDLE,
68 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType()); 71 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType());
69 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name3")) != 72 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name3")) !=
70 field_candidates_map_.end()); 73 field_candidates_map_.end());
71 EXPECT_EQ(NAME_LAST, 74 EXPECT_EQ(NAME_LAST,
72 field_candidates_map_[ASCIIToUTF16("name3")].BestHeuristicType()); 75 field_candidates_map_[ASCIIToUTF16("name3")].BestHeuristicType());
73 } 76 }
74 77
75 TEST_F(NameFieldTest, FirstMiddleLast2) { 78 TEST_F(NameFieldTest, FirstMiddleLast2) {
76 FormFieldData field; 79 FormFieldData field;
77 field.form_control_type = "text"; 80 field.form_control_type = "text";
78 81
79 field.label = base::string16(); 82 field.label = base::string16();
80 field.name = ASCIIToUTF16("firstName"); 83 field.name = ASCIIToUTF16("firstName");
81 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); 84 list_.push_back(
85 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name1")));
82 86
83 field.label = base::string16(); 87 field.label = base::string16();
84 field.name = ASCIIToUTF16("middleName"); 88 field.name = ASCIIToUTF16("middleName");
85 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2"))); 89 list_.push_back(
90 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name2")));
86 91
87 field.label = base::string16(); 92 field.label = base::string16();
88 field.name = ASCIIToUTF16("lastName"); 93 field.name = ASCIIToUTF16("lastName");
89 list_.push_back(new AutofillField(field, ASCIIToUTF16("name3"))); 94 list_.push_back(
95 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name3")));
90 96
91 AutofillScanner scanner(list_.get()); 97 AutofillScanner scanner(list_);
92 field_ = Parse(&scanner); 98 field_ = Parse(&scanner);
93 ASSERT_NE(nullptr, field_.get()); 99 ASSERT_NE(nullptr, field_.get());
94 field_->AddClassifications(&field_candidates_map_); 100 field_->AddClassifications(&field_candidates_map_);
95 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) != 101 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) !=
96 field_candidates_map_.end()); 102 field_candidates_map_.end());
97 EXPECT_EQ(NAME_FIRST, 103 EXPECT_EQ(NAME_FIRST,
98 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType()); 104 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType());
99 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) != 105 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) !=
100 field_candidates_map_.end()); 106 field_candidates_map_.end());
101 EXPECT_EQ(NAME_MIDDLE, 107 EXPECT_EQ(NAME_MIDDLE,
102 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType()); 108 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType());
103 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name3")) != 109 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name3")) !=
104 field_candidates_map_.end()); 110 field_candidates_map_.end());
105 EXPECT_EQ(NAME_LAST, 111 EXPECT_EQ(NAME_LAST,
106 field_candidates_map_[ASCIIToUTF16("name3")].BestHeuristicType()); 112 field_candidates_map_[ASCIIToUTF16("name3")].BestHeuristicType());
107 } 113 }
108 114
109 TEST_F(NameFieldTest, FirstLast) { 115 TEST_F(NameFieldTest, FirstLast) {
110 FormFieldData field; 116 FormFieldData field;
111 field.form_control_type = "text"; 117 field.form_control_type = "text";
112 118
113 field.label = base::string16(); 119 field.label = base::string16();
114 field.name = ASCIIToUTF16("first_name"); 120 field.name = ASCIIToUTF16("first_name");
115 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); 121 list_.push_back(
122 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name1")));
116 123
117 field.label = base::string16(); 124 field.label = base::string16();
118 field.name = ASCIIToUTF16("last_name"); 125 field.name = ASCIIToUTF16("last_name");
119 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2"))); 126 list_.push_back(
127 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name2")));
120 128
121 AutofillScanner scanner(list_.get()); 129 AutofillScanner scanner(list_);
122 field_ = Parse(&scanner); 130 field_ = Parse(&scanner);
123 ASSERT_NE(nullptr, field_.get()); 131 ASSERT_NE(nullptr, field_.get());
124 field_->AddClassifications(&field_candidates_map_); 132 field_->AddClassifications(&field_candidates_map_);
125 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) != 133 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) !=
126 field_candidates_map_.end()); 134 field_candidates_map_.end());
127 EXPECT_EQ(NAME_FIRST, 135 EXPECT_EQ(NAME_FIRST,
128 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType()); 136 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType());
129 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) != 137 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) !=
130 field_candidates_map_.end()); 138 field_candidates_map_.end());
131 EXPECT_EQ(NAME_LAST, 139 EXPECT_EQ(NAME_LAST,
132 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType()); 140 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType());
133 } 141 }
134 142
135 TEST_F(NameFieldTest, FirstLast2) { 143 TEST_F(NameFieldTest, FirstLast2) {
136 FormFieldData field; 144 FormFieldData field;
137 field.form_control_type = "text"; 145 field.form_control_type = "text";
138 146
139 field.label = ASCIIToUTF16("Name"); 147 field.label = ASCIIToUTF16("Name");
140 field.name = ASCIIToUTF16("first_name"); 148 field.name = ASCIIToUTF16("first_name");
141 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); 149 list_.push_back(
150 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name1")));
142 151
143 field.label = ASCIIToUTF16("Name"); 152 field.label = ASCIIToUTF16("Name");
144 field.name = ASCIIToUTF16("last_name"); 153 field.name = ASCIIToUTF16("last_name");
145 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2"))); 154 list_.push_back(
155 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name2")));
146 156
147 AutofillScanner scanner(list_.get()); 157 AutofillScanner scanner(list_);
148 field_ = Parse(&scanner); 158 field_ = Parse(&scanner);
149 ASSERT_NE(nullptr, field_.get()); 159 ASSERT_NE(nullptr, field_.get());
150 field_->AddClassifications(&field_candidates_map_); 160 field_->AddClassifications(&field_candidates_map_);
151 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) != 161 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) !=
152 field_candidates_map_.end()); 162 field_candidates_map_.end());
153 EXPECT_EQ(NAME_FIRST, 163 EXPECT_EQ(NAME_FIRST,
154 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType()); 164 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType());
155 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) != 165 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) !=
156 field_candidates_map_.end()); 166 field_candidates_map_.end());
157 EXPECT_EQ(NAME_LAST, 167 EXPECT_EQ(NAME_LAST,
158 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType()); 168 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType());
159 } 169 }
160 170
161 TEST_F(NameFieldTest, FirstLastMiddleWithSpaces) { 171 TEST_F(NameFieldTest, FirstLastMiddleWithSpaces) {
162 FormFieldData field; 172 FormFieldData field;
163 field.form_control_type = "text"; 173 field.form_control_type = "text";
164 174
165 field.label = ASCIIToUTF16("First Name"); 175 field.label = ASCIIToUTF16("First Name");
166 field.name = ASCIIToUTF16("first_name"); 176 field.name = ASCIIToUTF16("first_name");
167 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); 177 list_.push_back(
178 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name1")));
168 179
169 field.label = ASCIIToUTF16("Middle Name"); 180 field.label = ASCIIToUTF16("Middle Name");
170 field.name = ASCIIToUTF16("middle_name"); 181 field.name = ASCIIToUTF16("middle_name");
171 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2"))); 182 list_.push_back(
183 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name2")));
172 184
173 field.label = ASCIIToUTF16("Last Name"); 185 field.label = ASCIIToUTF16("Last Name");
174 field.name = ASCIIToUTF16("last_name"); 186 field.name = ASCIIToUTF16("last_name");
175 list_.push_back(new AutofillField(field, ASCIIToUTF16("name3"))); 187 list_.push_back(
188 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name3")));
176 189
177 AutofillScanner scanner(list_.get()); 190 AutofillScanner scanner(list_);
178 field_ = Parse(&scanner); 191 field_ = Parse(&scanner);
179 ASSERT_NE(nullptr, field_.get()); 192 ASSERT_NE(nullptr, field_.get());
180 field_->AddClassifications(&field_candidates_map_); 193 field_->AddClassifications(&field_candidates_map_);
181 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) != 194 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) !=
182 field_candidates_map_.end()); 195 field_candidates_map_.end());
183 EXPECT_EQ(NAME_FIRST, 196 EXPECT_EQ(NAME_FIRST,
184 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType()); 197 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType());
185 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) != 198 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) !=
186 field_candidates_map_.end()); 199 field_candidates_map_.end());
187 EXPECT_EQ(NAME_MIDDLE, 200 EXPECT_EQ(NAME_MIDDLE,
188 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType()); 201 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType());
189 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name3")) != 202 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name3")) !=
190 field_candidates_map_.end()); 203 field_candidates_map_.end());
191 EXPECT_EQ(NAME_LAST, 204 EXPECT_EQ(NAME_LAST,
192 field_candidates_map_[ASCIIToUTF16("name3")].BestHeuristicType()); 205 field_candidates_map_[ASCIIToUTF16("name3")].BestHeuristicType());
193 } 206 }
194 207
195 TEST_F(NameFieldTest, FirstLastEmpty) { 208 TEST_F(NameFieldTest, FirstLastEmpty) {
196 FormFieldData field; 209 FormFieldData field;
197 field.form_control_type = "text"; 210 field.form_control_type = "text";
198 211
199 field.label = ASCIIToUTF16("Name"); 212 field.label = ASCIIToUTF16("Name");
200 field.name = ASCIIToUTF16("first_name"); 213 field.name = ASCIIToUTF16("first_name");
201 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); 214 list_.push_back(
215 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name1")));
202 216
203 field.label = base::string16(); 217 field.label = base::string16();
204 field.name = ASCIIToUTF16("last_name"); 218 field.name = ASCIIToUTF16("last_name");
205 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2"))); 219 list_.push_back(
220 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name2")));
206 221
207 AutofillScanner scanner(list_.get()); 222 AutofillScanner scanner(list_);
208 field_ = Parse(&scanner); 223 field_ = Parse(&scanner);
209 ASSERT_NE(nullptr, field_.get()); 224 ASSERT_NE(nullptr, field_.get());
210 field_->AddClassifications(&field_candidates_map_); 225 field_->AddClassifications(&field_candidates_map_);
211 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) != 226 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) !=
212 field_candidates_map_.end()); 227 field_candidates_map_.end());
213 EXPECT_EQ(NAME_FIRST, 228 EXPECT_EQ(NAME_FIRST,
214 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType()); 229 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType());
215 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) != 230 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) !=
216 field_candidates_map_.end()); 231 field_candidates_map_.end());
217 EXPECT_EQ(NAME_LAST, 232 EXPECT_EQ(NAME_LAST,
218 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType()); 233 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType());
219 } 234 }
220 235
221 TEST_F(NameFieldTest, FirstMiddleLastEmpty) { 236 TEST_F(NameFieldTest, FirstMiddleLastEmpty) {
222 FormFieldData field; 237 FormFieldData field;
223 field.form_control_type = "text"; 238 field.form_control_type = "text";
224 239
225 field.label = ASCIIToUTF16("Name"); 240 field.label = ASCIIToUTF16("Name");
226 field.name = ASCIIToUTF16("first_name"); 241 field.name = ASCIIToUTF16("first_name");
227 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); 242 list_.push_back(
243 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name1")));
228 244
229 field.label = base::string16(); 245 field.label = base::string16();
230 field.name = ASCIIToUTF16("middle_name"); 246 field.name = ASCIIToUTF16("middle_name");
231 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2"))); 247 list_.push_back(
248 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name2")));
232 249
233 field.label = base::string16(); 250 field.label = base::string16();
234 field.name = ASCIIToUTF16("last_name"); 251 field.name = ASCIIToUTF16("last_name");
235 list_.push_back(new AutofillField(field, ASCIIToUTF16("name3"))); 252 list_.push_back(
253 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name3")));
236 254
237 AutofillScanner scanner(list_.get()); 255 AutofillScanner scanner(list_);
238 field_ = Parse(&scanner); 256 field_ = Parse(&scanner);
239 ASSERT_NE(nullptr, field_.get()); 257 ASSERT_NE(nullptr, field_.get());
240 field_->AddClassifications(&field_candidates_map_); 258 field_->AddClassifications(&field_candidates_map_);
241 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) != 259 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) !=
242 field_candidates_map_.end()); 260 field_candidates_map_.end());
243 EXPECT_EQ(NAME_FIRST, 261 EXPECT_EQ(NAME_FIRST,
244 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType()); 262 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType());
245 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) != 263 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) !=
246 field_candidates_map_.end()); 264 field_candidates_map_.end());
247 EXPECT_EQ(NAME_MIDDLE_INITIAL, 265 EXPECT_EQ(NAME_MIDDLE_INITIAL,
248 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType()); 266 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType());
249 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name3")) != 267 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name3")) !=
250 field_candidates_map_.end()); 268 field_candidates_map_.end());
251 EXPECT_EQ(NAME_LAST, 269 EXPECT_EQ(NAME_LAST,
252 field_candidates_map_[ASCIIToUTF16("name3")].BestHeuristicType()); 270 field_candidates_map_[ASCIIToUTF16("name3")].BestHeuristicType());
253 } 271 }
254 272
255 TEST_F(NameFieldTest, MiddleInitial) { 273 TEST_F(NameFieldTest, MiddleInitial) {
256 FormFieldData field; 274 FormFieldData field;
257 field.form_control_type = "text"; 275 field.form_control_type = "text";
258 276
259 field.label = ASCIIToUTF16("First Name"); 277 field.label = ASCIIToUTF16("First Name");
260 field.name = ASCIIToUTF16("first_name"); 278 field.name = ASCIIToUTF16("first_name");
261 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); 279 list_.push_back(
280 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name1")));
262 281
263 field.label = ASCIIToUTF16("MI"); 282 field.label = ASCIIToUTF16("MI");
264 field.name = ASCIIToUTF16("middle_name"); 283 field.name = ASCIIToUTF16("middle_name");
265 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2"))); 284 list_.push_back(
285 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name2")));
266 286
267 field.label = ASCIIToUTF16("Last Name"); 287 field.label = ASCIIToUTF16("Last Name");
268 field.name = ASCIIToUTF16("last_name"); 288 field.name = ASCIIToUTF16("last_name");
269 list_.push_back(new AutofillField(field, ASCIIToUTF16("name3"))); 289 list_.push_back(
290 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name3")));
270 291
271 AutofillScanner scanner(list_.get()); 292 AutofillScanner scanner(list_);
272 field_ = Parse(&scanner); 293 field_ = Parse(&scanner);
273 ASSERT_NE(nullptr, field_.get()); 294 ASSERT_NE(nullptr, field_.get());
274 field_->AddClassifications(&field_candidates_map_); 295 field_->AddClassifications(&field_candidates_map_);
275 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) != 296 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) !=
276 field_candidates_map_.end()); 297 field_candidates_map_.end());
277 EXPECT_EQ(NAME_FIRST, 298 EXPECT_EQ(NAME_FIRST,
278 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType()); 299 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType());
279 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) != 300 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) !=
280 field_candidates_map_.end()); 301 field_candidates_map_.end());
281 EXPECT_EQ(NAME_MIDDLE_INITIAL, 302 EXPECT_EQ(NAME_MIDDLE_INITIAL,
282 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType()); 303 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType());
283 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name3")) != 304 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name3")) !=
284 field_candidates_map_.end()); 305 field_candidates_map_.end());
285 EXPECT_EQ(NAME_LAST, 306 EXPECT_EQ(NAME_LAST,
286 field_candidates_map_[ASCIIToUTF16("name3")].BestHeuristicType()); 307 field_candidates_map_[ASCIIToUTF16("name3")].BestHeuristicType());
287 } 308 }
288 309
289 TEST_F(NameFieldTest, MiddleInitialNoLastName) { 310 TEST_F(NameFieldTest, MiddleInitialNoLastName) {
290 FormFieldData field; 311 FormFieldData field;
291 field.form_control_type = "text"; 312 field.form_control_type = "text";
292 313
293 field.label = ASCIIToUTF16("First Name"); 314 field.label = ASCIIToUTF16("First Name");
294 field.name = ASCIIToUTF16("first_name"); 315 field.name = ASCIIToUTF16("first_name");
295 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); 316 list_.push_back(
317 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name1")));
296 318
297 field.label = ASCIIToUTF16("MI"); 319 field.label = ASCIIToUTF16("MI");
298 field.name = ASCIIToUTF16("middle_name"); 320 field.name = ASCIIToUTF16("middle_name");
299 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2"))); 321 list_.push_back(
322 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name2")));
300 323
301 AutofillScanner scanner(list_.get()); 324 AutofillScanner scanner(list_);
302 field_ = Parse(&scanner); 325 field_ = Parse(&scanner);
303 ASSERT_EQ(nullptr, field_.get()); 326 ASSERT_EQ(nullptr, field_.get());
304 } 327 }
305 328
306 // This case is from the dell.com checkout page. The middle initial "mi" string 329 // This case is from the dell.com checkout page. The middle initial "mi" string
307 // came at the end following other descriptive text. http://crbug.com/45123. 330 // came at the end following other descriptive text. http://crbug.com/45123.
308 TEST_F(NameFieldTest, MiddleInitialAtEnd) { 331 TEST_F(NameFieldTest, MiddleInitialAtEnd) {
309 FormFieldData field; 332 FormFieldData field;
310 field.form_control_type = "text"; 333 field.form_control_type = "text";
311 334
312 field.label = base::string16(); 335 field.label = base::string16();
313 field.name = ASCIIToUTF16("XXXnameXXXfirst"); 336 field.name = ASCIIToUTF16("XXXnameXXXfirst");
314 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); 337 list_.push_back(
338 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name1")));
315 339
316 field.label = base::string16(); 340 field.label = base::string16();
317 field.name = ASCIIToUTF16("XXXnameXXXmi"); 341 field.name = ASCIIToUTF16("XXXnameXXXmi");
318 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2"))); 342 list_.push_back(
343 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name2")));
319 344
320 field.label = base::string16(); 345 field.label = base::string16();
321 field.name = ASCIIToUTF16("XXXnameXXXlast"); 346 field.name = ASCIIToUTF16("XXXnameXXXlast");
322 list_.push_back(new AutofillField(field, ASCIIToUTF16("name3"))); 347 list_.push_back(
348 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name3")));
323 349
324 AutofillScanner scanner(list_.get()); 350 AutofillScanner scanner(list_);
325 field_ = Parse(&scanner); 351 field_ = Parse(&scanner);
326 ASSERT_NE(nullptr, field_.get()); 352 ASSERT_NE(nullptr, field_.get());
327 field_->AddClassifications(&field_candidates_map_); 353 field_->AddClassifications(&field_candidates_map_);
328 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) != 354 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) !=
329 field_candidates_map_.end()); 355 field_candidates_map_.end());
330 EXPECT_EQ(NAME_FIRST, 356 EXPECT_EQ(NAME_FIRST,
331 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType()); 357 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType());
332 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) != 358 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) !=
333 field_candidates_map_.end()); 359 field_candidates_map_.end());
334 EXPECT_EQ(NAME_MIDDLE_INITIAL, 360 EXPECT_EQ(NAME_MIDDLE_INITIAL,
335 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType()); 361 field_candidates_map_[ASCIIToUTF16("name2")].BestHeuristicType());
336 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name3")) != 362 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name3")) !=
337 field_candidates_map_.end()); 363 field_candidates_map_.end());
338 EXPECT_EQ(NAME_LAST, 364 EXPECT_EQ(NAME_LAST,
339 field_candidates_map_[ASCIIToUTF16("name3")].BestHeuristicType()); 365 field_candidates_map_[ASCIIToUTF16("name3")].BestHeuristicType());
340 } 366 }
341 367
342 } // namespace autofill 368 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/core/browser/form_structure.cc ('k') | components/autofill/core/browser/personal_data_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698