Chromium Code Reviews

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

Issue 2818033: AutoFill: Aggregate profile data. Remove the AutoFill InfoBar. (Closed)
Patch Set: Comment. Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
« no previous file with comments | « chrome/browser/autofill/autofill_manager.cc ('k') | chrome/browser/autofill/autofill_profile.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 <vector> 5 #include <vector>
6 6
7 #include "base/ref_counted.h" 7 #include "base/ref_counted.h"
8 #include "base/scoped_ptr.h" 8 #include "base/scoped_ptr.h"
9 #include "base/scoped_vector.h" 9 #include "base/scoped_vector.h"
10 #include "base/string16.h" 10 #include "base/string16.h"
(...skipping 67 matching lines...)
78 profile = new AutoFillProfile; 78 profile = new AutoFillProfile;
79 autofill_unittest::SetProfileInfo(profile, "Empty", "", "", "", "", "", "", 79 autofill_unittest::SetProfileInfo(profile, "Empty", "", "", "", "", "", "",
80 "", "", "", "", "", "", ""); 80 "", "", "", "", "", "", "");
81 profiles->push_back(profile); 81 profiles->push_back(profile);
82 } 82 }
83 83
84 void CreateTestCreditCards(ScopedVector<CreditCard>* credit_cards) { 84 void CreateTestCreditCards(ScopedVector<CreditCard>* credit_cards) {
85 CreditCard* credit_card = new CreditCard; 85 CreditCard* credit_card = new CreditCard;
86 autofill_unittest::SetCreditCardInfo(credit_card, "First", "Elvis Presley", 86 autofill_unittest::SetCreditCardInfo(credit_card, "First", "Elvis Presley",
87 "Visa", "1234567890123456", "04", 87 "Visa", "1234567890123456", "04",
88 "2012", "456", "Home", ""); 88 "2012", "Home");
89 credit_cards->push_back(credit_card); 89 credit_cards->push_back(credit_card);
90 credit_card = new CreditCard; 90 credit_card = new CreditCard;
91 autofill_unittest::SetCreditCardInfo(credit_card, "Second", "Buddy Holly", 91 autofill_unittest::SetCreditCardInfo(credit_card, "Second", "Buddy Holly",
92 "Mastercard", "0987654321098765", "10", 92 "Mastercard", "0987654321098765", "10",
93 "2014", "678", "", ""); 93 "2014", "");
94 credit_cards->push_back(credit_card); 94 credit_cards->push_back(credit_card);
95 credit_card = new CreditCard; 95 credit_card = new CreditCard;
96 autofill_unittest::SetCreditCardInfo(credit_card, "Empty", "", "", "", "", 96 autofill_unittest::SetCreditCardInfo(credit_card, "Empty", "", "", "", "",
97 "", "", "", ""); 97 "", "");
98 credit_cards->push_back(credit_card); 98 credit_cards->push_back(credit_card);
99 } 99 }
100 100
101 DISALLOW_COPY_AND_ASSIGN(TestPersonalDataManager); 101 DISALLOW_COPY_AND_ASSIGN(TestPersonalDataManager);
102 }; 102 };
103 103
104 class TestAutoFillManager : public AutoFillManager { 104 class TestAutoFillManager : public AutoFillManager {
105 public: 105 public:
106 explicit TestAutoFillManager(TabContents* tab_contents) 106 explicit TestAutoFillManager(TabContents* tab_contents)
107 : AutoFillManager(tab_contents, NULL) { 107 : AutoFillManager(tab_contents, NULL) {
(...skipping 10 matching lines...)
118 void AddSemicolonAutoFillProfile() { 118 void AddSemicolonAutoFillProfile() {
119 test_personal_data_->AddSemicolonAutoFillProfile(); 119 test_personal_data_->AddSemicolonAutoFillProfile();
120 } 120 }
121 121
122 private: 122 private:
123 scoped_refptr<TestPersonalDataManager> test_personal_data_; 123 scoped_refptr<TestPersonalDataManager> test_personal_data_;
124 124
125 DISALLOW_COPY_AND_ASSIGN(TestAutoFillManager); 125 DISALLOW_COPY_AND_ASSIGN(TestAutoFillManager);
126 }; 126 };
127 127
128 void CreateTestFormField(const char* label,
129 const char* name,
130 const char* value,
131 const char* type,
132 webkit_glue::FormField* field) {
133 *field = webkit_glue::FormField(ASCIIToUTF16(label), ASCIIToUTF16(name),
134 ASCIIToUTF16(value), ASCIIToUTF16(type), 0);
135 }
136
137 void CreateTestFormData(FormData* form) { 128 void CreateTestFormData(FormData* form) {
138 form->name = ASCIIToUTF16("MyForm"); 129 form->name = ASCIIToUTF16("MyForm");
139 form->method = ASCIIToUTF16("POST"); 130 form->method = ASCIIToUTF16("POST");
140 form->origin = GURL("http://myform.com/form.html"); 131 form->origin = GURL("http://myform.com/form.html");
141 form->action = GURL("http://myform.com/submit.html"); 132 form->action = GURL("http://myform.com/submit.html");
142 133
143 webkit_glue::FormField field; 134 webkit_glue::FormField field;
144 CreateTestFormField("First Name", "firstname", "", "text", &field); 135 autofill_unittest::CreateTestFormField(
136 "First Name", "firstname", "", "text", &field);
145 form->fields.push_back(field); 137 form->fields.push_back(field);
146 CreateTestFormField("Middle Name", "middlename", "", "text", &field); 138 autofill_unittest::CreateTestFormField(
139 "Middle Name", "middlename", "", "text", &field);
147 form->fields.push_back(field); 140 form->fields.push_back(field);
148 CreateTestFormField("Last Name", "lastname", "", "text", &field); 141 autofill_unittest::CreateTestFormField(
142 "Last Name", "lastname", "", "text", &field);
149 form->fields.push_back(field); 143 form->fields.push_back(field);
150 CreateTestFormField("Address Line 1", "addr1", "", "text", &field); 144 autofill_unittest::CreateTestFormField(
145 "Address Line 1", "addr1", "", "text", &field);
151 form->fields.push_back(field); 146 form->fields.push_back(field);
152 CreateTestFormField("Address Line 2", "addr2", "", "text", &field); 147 autofill_unittest::CreateTestFormField(
148 "Address Line 2", "addr2", "", "text", &field);
153 form->fields.push_back(field); 149 form->fields.push_back(field);
154 CreateTestFormField("City", "city", "", "text", &field); 150 autofill_unittest::CreateTestFormField(
151 "City", "city", "", "text", &field);
155 form->fields.push_back(field); 152 form->fields.push_back(field);
156 CreateTestFormField("State", "state", "", "text", &field); 153 autofill_unittest::CreateTestFormField(
154 "State", "state", "", "text", &field);
157 form->fields.push_back(field); 155 form->fields.push_back(field);
158 CreateTestFormField("Postal Code", "zipcode", "", "text", &field); 156 autofill_unittest::CreateTestFormField(
157 "Postal Code", "zipcode", "", "text", &field);
159 form->fields.push_back(field); 158 form->fields.push_back(field);
160 CreateTestFormField("Country", "country", "", "text", &field); 159 autofill_unittest::CreateTestFormField(
160 "Country", "country", "", "text", &field);
161 form->fields.push_back(field); 161 form->fields.push_back(field);
162 CreateTestFormField("Phone Number", "phonenumber", "", "text", &field); 162 autofill_unittest::CreateTestFormField(
163 "Phone Number", "phonenumber", "", "text", &field);
163 form->fields.push_back(field); 164 form->fields.push_back(field);
164 CreateTestFormField("Email", "email", "", "text", &field); 165 autofill_unittest::CreateTestFormField(
166 "Email", "email", "", "text", &field);
165 form->fields.push_back(field); 167 form->fields.push_back(field);
166 } 168 }
167 169
168 void CreateTestFormDataBilling(FormData* form) { 170 void CreateTestFormDataBilling(FormData* form) {
169 form->name = ASCIIToUTF16("MyForm"); 171 form->name = ASCIIToUTF16("MyForm");
170 form->method = ASCIIToUTF16("POST"); 172 form->method = ASCIIToUTF16("POST");
171 form->origin = GURL("http://myform.com/form.html"); 173 form->origin = GURL("http://myform.com/form.html");
172 form->action = GURL("http://myform.com/submit.html"); 174 form->action = GURL("http://myform.com/submit.html");
173 175
174 webkit_glue::FormField field; 176 webkit_glue::FormField field;
175 CreateTestFormField("First Name", "firstname", "", "text", &field); 177 autofill_unittest::CreateTestFormField(
178 "First Name", "firstname", "", "text", &field);
176 form->fields.push_back(field); 179 form->fields.push_back(field);
177 CreateTestFormField("Middle Name", "middlename", "", "text", &field); 180 autofill_unittest::CreateTestFormField(
181 "Middle Name", "middlename", "", "text", &field);
178 form->fields.push_back(field); 182 form->fields.push_back(field);
179 CreateTestFormField("Last Name", "lastname", "", "text", &field); 183 autofill_unittest::CreateTestFormField(
184 "Last Name", "lastname", "", "text", &field);
180 form->fields.push_back(field); 185 form->fields.push_back(field);
181 CreateTestFormField("Address Line 1", "billingAddr1", "", "text", &field); 186 autofill_unittest::CreateTestFormField(
187 "Address Line 1", "billingAddr1", "", "text", &field);
182 form->fields.push_back(field); 188 form->fields.push_back(field);
183 CreateTestFormField("Address Line 2", "billingAddr2", "", "text", &field); 189 autofill_unittest::CreateTestFormField(
190 "Address Line 2", "billingAddr2", "", "text", &field);
184 form->fields.push_back(field); 191 form->fields.push_back(field);
185 CreateTestFormField("City", "billingCity", "", "text", &field); 192 autofill_unittest::CreateTestFormField(
193 "City", "billingCity", "", "text", &field);
186 form->fields.push_back(field); 194 form->fields.push_back(field);
187 CreateTestFormField("State", "billingState", "", "text", &field); 195 autofill_unittest::CreateTestFormField(
196 "State", "billingState", "", "text", &field);
188 form->fields.push_back(field); 197 form->fields.push_back(field);
189 CreateTestFormField("Postal Code", "billingZipcode", "", "text", &field); 198 autofill_unittest::CreateTestFormField(
199 "Postal Code", "billingZipcode", "", "text", &field);
190 form->fields.push_back(field); 200 form->fields.push_back(field);
191 CreateTestFormField("Country", "billingCountry", "", "text", &field); 201 autofill_unittest::CreateTestFormField(
202 "Country", "billingCountry", "", "text", &field);
192 form->fields.push_back(field); 203 form->fields.push_back(field);
193 CreateTestFormField("Phone Number", "phonenumber", "", "text", &field); 204 autofill_unittest::CreateTestFormField(
205 "Phone Number", "phonenumber", "", "text", &field);
194 form->fields.push_back(field); 206 form->fields.push_back(field);
195 CreateTestFormField("Email", "email", "", "text", &field); 207 autofill_unittest::CreateTestFormField(
208 "Email", "email", "", "text", &field);
196 form->fields.push_back(field); 209 form->fields.push_back(field);
197 CreateTestFormField("Name on Card", "nameoncard", "", "text", &field); 210 autofill_unittest::CreateTestFormField(
211 "Name on Card", "nameoncard", "", "text", &field);
198 form->fields.push_back(field); 212 form->fields.push_back(field);
199 CreateTestFormField("Card Number", "cardnumber", "", "text", &field); 213 autofill_unittest::CreateTestFormField(
214 "Card Number", "cardnumber", "", "text", &field);
200 form->fields.push_back(field); 215 form->fields.push_back(field);
201 CreateTestFormField("Expiration Date", "ccmonth", "", "text", &field); 216 autofill_unittest::CreateTestFormField(
217 "Expiration Date", "ccmonth", "", "text", &field);
202 form->fields.push_back(field); 218 form->fields.push_back(field);
203 CreateTestFormField("", "ccyear", "", "text", &field); 219 autofill_unittest::CreateTestFormField(
220 "", "ccyear", "", "text", &field);
204 form->fields.push_back(field); 221 form->fields.push_back(field);
205 } 222 }
206 223
207 class AutoFillManagerTest : public RenderViewHostTestHarness { 224 class AutoFillManagerTest : public RenderViewHostTestHarness {
208 public: 225 public:
209 AutoFillManagerTest() {} 226 AutoFillManagerTest() {}
210 227
211 virtual void SetUp() { 228 virtual void SetUp() {
212 RenderViewHostTestHarness::SetUp(); 229 RenderViewHostTestHarness::SetUp();
213 autofill_manager_.reset(new TestAutoFillManager(contents())); 230 autofill_manager_.reset(new TestAutoFillManager(contents()));
(...skipping 53 matching lines...)
267 // Set up our FormStructures. 284 // Set up our FormStructures.
268 std::vector<FormData> forms; 285 std::vector<FormData> forms;
269 forms.push_back(form); 286 forms.push_back(form);
270 autofill_manager_->FormsSeen(forms); 287 autofill_manager_->FormsSeen(forms);
271 288
272 // The page ID sent to the AutoFillManager from the RenderView, used to send 289 // The page ID sent to the AutoFillManager from the RenderView, used to send
273 // an IPC message back to the renderer. 290 // an IPC message back to the renderer.
274 const int kPageID = 1; 291 const int kPageID = 1;
275 292
276 webkit_glue::FormField field; 293 webkit_glue::FormField field;
277 CreateTestFormField("First Name", "firstname", "", "text", &field); 294 autofill_unittest::CreateTestFormField(
295 "First Name", "firstname", "", "text", &field);
278 EXPECT_TRUE(autofill_manager_->GetAutoFillSuggestions(kPageID, false, field)); 296 EXPECT_TRUE(autofill_manager_->GetAutoFillSuggestions(kPageID, false, field));
279 297
280 // Test that we sent the right message to the renderer. 298 // Test that we sent the right message to the renderer.
281 int page_id = 0; 299 int page_id = 0;
282 std::vector<string16> values; 300 std::vector<string16> values;
283 std::vector<string16> labels; 301 std::vector<string16> labels;
284 EXPECT_TRUE(GetAutoFillSuggestionsMessage(&page_id, &values, &labels)); 302 EXPECT_TRUE(GetAutoFillSuggestionsMessage(&page_id, &values, &labels));
285 EXPECT_EQ(kPageID, page_id); 303 EXPECT_EQ(kPageID, page_id);
286 ASSERT_EQ(2U, values.size()); 304 ASSERT_EQ(2U, values.size());
287 EXPECT_EQ(ASCIIToUTF16("Elvis"), values[0]); 305 EXPECT_EQ(ASCIIToUTF16("Elvis"), values[0]);
(...skipping 10 matching lines...)
298 // Set up our FormStructures. 316 // Set up our FormStructures.
299 std::vector<FormData> forms; 317 std::vector<FormData> forms;
300 forms.push_back(form); 318 forms.push_back(form);
301 autofill_manager_->FormsSeen(forms); 319 autofill_manager_->FormsSeen(forms);
302 320
303 // The page ID sent to the AutoFillManager from the RenderView, used to send 321 // The page ID sent to the AutoFillManager from the RenderView, used to send
304 // an IPC message back to the renderer. 322 // an IPC message back to the renderer.
305 const int kPageID = 1; 323 const int kPageID = 1;
306 324
307 webkit_glue::FormField field; 325 webkit_glue::FormField field;
308 CreateTestFormField("First Name", "firstname", "E", "text", &field); 326 autofill_unittest::CreateTestFormField(
327 "First Name", "firstname", "E", "text", &field);
309 EXPECT_TRUE(autofill_manager_->GetAutoFillSuggestions(kPageID, false, field)); 328 EXPECT_TRUE(autofill_manager_->GetAutoFillSuggestions(kPageID, false, field));
310 329
311 // Test that we sent the right message to the renderer. 330 // Test that we sent the right message to the renderer.
312 int page_id = 0; 331 int page_id = 0;
313 std::vector<string16> values; 332 std::vector<string16> values;
314 std::vector<string16> labels; 333 std::vector<string16> labels;
315 EXPECT_TRUE(GetAutoFillSuggestionsMessage(&page_id, &values, &labels)); 334 EXPECT_TRUE(GetAutoFillSuggestionsMessage(&page_id, &values, &labels));
316 EXPECT_EQ(kPageID, page_id); 335 EXPECT_EQ(kPageID, page_id);
317 ASSERT_EQ(1U, values.size()); 336 ASSERT_EQ(1U, values.size());
318 EXPECT_EQ(ASCIIToUTF16("Elvis"), values[0]); 337 EXPECT_EQ(ASCIIToUTF16("Elvis"), values[0]);
319 ASSERT_EQ(1U, labels.size()); 338 ASSERT_EQ(1U, labels.size());
320 EXPECT_EQ(ASCIIToUTF16("Home"), labels[0]); 339 EXPECT_EQ(ASCIIToUTF16("Home"), labels[0]);
321 } 340 }
322 341
323 TEST_F(AutoFillManagerTest, GetCreditCardSuggestionsEmptyValue) { 342 TEST_F(AutoFillManagerTest, GetCreditCardSuggestionsEmptyValue) {
324 FormData form; 343 FormData form;
325 CreateTestFormDataBilling(&form); 344 CreateTestFormDataBilling(&form);
326 345
327 // Set up our FormStructures. 346 // Set up our FormStructures.
328 std::vector<FormData> forms; 347 std::vector<FormData> forms;
329 forms.push_back(form); 348 forms.push_back(form);
330 autofill_manager_->FormsSeen(forms); 349 autofill_manager_->FormsSeen(forms);
331 350
332 // The page ID sent to the AutoFillManager from the RenderView, used to send 351 // The page ID sent to the AutoFillManager from the RenderView, used to send
333 // an IPC message back to the renderer. 352 // an IPC message back to the renderer.
334 const int kPageID = 1; 353 const int kPageID = 1;
335 354
336 webkit_glue::FormField field; 355 webkit_glue::FormField field;
337 CreateTestFormField("Card Number", "cardnumber", "", "text", &field); 356 autofill_unittest::CreateTestFormField(
357 "Card Number", "cardnumber", "", "text", &field);
338 EXPECT_TRUE(autofill_manager_->GetAutoFillSuggestions(kPageID, false, field)); 358 EXPECT_TRUE(autofill_manager_->GetAutoFillSuggestions(kPageID, false, field));
339 359
340 // Test that we sent the right message to the renderer. 360 // Test that we sent the right message to the renderer.
341 int page_id = 0; 361 int page_id = 0;
342 std::vector<string16> values; 362 std::vector<string16> values;
343 std::vector<string16> labels; 363 std::vector<string16> labels;
344 EXPECT_TRUE(GetAutoFillSuggestionsMessage(&page_id, &values, &labels)); 364 EXPECT_TRUE(GetAutoFillSuggestionsMessage(&page_id, &values, &labels));
345 EXPECT_EQ(kPageID, page_id); 365 EXPECT_EQ(kPageID, page_id);
346 ASSERT_EQ(6U, values.size()); 366 ASSERT_EQ(6U, values.size());
347 EXPECT_EQ(ASCIIToUTF16("************3456"), values[0]); 367 EXPECT_EQ(ASCIIToUTF16("************3456"), values[0]);
(...skipping 18 matching lines...)
366 // Set up our FormStructures. 386 // Set up our FormStructures.
367 std::vector<FormData> forms; 387 std::vector<FormData> forms;
368 forms.push_back(form); 388 forms.push_back(form);
369 autofill_manager_->FormsSeen(forms); 389 autofill_manager_->FormsSeen(forms);
370 390
371 // The page ID sent to the AutoFillManager from the RenderView, used to send 391 // The page ID sent to the AutoFillManager from the RenderView, used to send
372 // an IPC message back to the renderer. 392 // an IPC message back to the renderer.
373 const int kPageID = 1; 393 const int kPageID = 1;
374 394
375 webkit_glue::FormField field; 395 webkit_glue::FormField field;
376 CreateTestFormField("Card Number", "cardnumber", "1", "text", &field); 396 autofill_unittest::CreateTestFormField(
397 "Card Number", "cardnumber", "1", "text", &field);
377 EXPECT_TRUE(autofill_manager_->GetAutoFillSuggestions(kPageID, false, field)); 398 EXPECT_TRUE(autofill_manager_->GetAutoFillSuggestions(kPageID, false, field));
378 399
379 // Test that we sent the right message to the renderer. 400 // Test that we sent the right message to the renderer.
380 int page_id = 0; 401 int page_id = 0;
381 std::vector<string16> values; 402 std::vector<string16> values;
382 std::vector<string16> labels; 403 std::vector<string16> labels;
383 EXPECT_TRUE(GetAutoFillSuggestionsMessage(&page_id, &values, &labels)); 404 EXPECT_TRUE(GetAutoFillSuggestionsMessage(&page_id, &values, &labels));
384 EXPECT_EQ(kPageID, page_id); 405 EXPECT_EQ(kPageID, page_id);
385 ASSERT_EQ(3U, values.size()); 406 ASSERT_EQ(3U, values.size());
386 EXPECT_EQ(ASCIIToUTF16("************3456"), values[0]); 407 EXPECT_EQ(ASCIIToUTF16("************3456"), values[0]);
(...skipping 12 matching lines...)
399 // Set up our FormStructures. 420 // Set up our FormStructures.
400 std::vector<FormData> forms; 421 std::vector<FormData> forms;
401 forms.push_back(form); 422 forms.push_back(form);
402 autofill_manager_->FormsSeen(forms); 423 autofill_manager_->FormsSeen(forms);
403 424
404 // The page ID sent to the AutoFillManager from the RenderView, used to send 425 // The page ID sent to the AutoFillManager from the RenderView, used to send
405 // an IPC message back to the renderer. 426 // an IPC message back to the renderer.
406 const int kPageID = 1; 427 const int kPageID = 1;
407 428
408 webkit_glue::FormField field; 429 webkit_glue::FormField field;
409 CreateTestFormField("Name on Card", "nameoncard", "", "text", &field); 430 autofill_unittest::CreateTestFormField(
431 "Name on Card", "nameoncard", "", "text", &field);
410 EXPECT_TRUE(autofill_manager_->GetAutoFillSuggestions(kPageID, false, field)); 432 EXPECT_TRUE(autofill_manager_->GetAutoFillSuggestions(kPageID, false, field));
411 433
412 // Test that we sent the right message to the renderer. 434 // Test that we sent the right message to the renderer.
413 int page_id = 0; 435 int page_id = 0;
414 std::vector<string16> values; 436 std::vector<string16> values;
415 std::vector<string16> labels; 437 std::vector<string16> labels;
416 EXPECT_TRUE(GetAutoFillSuggestionsMessage(&page_id, &values, &labels)); 438 EXPECT_TRUE(GetAutoFillSuggestionsMessage(&page_id, &values, &labels));
417 EXPECT_EQ(kPageID, page_id); 439 EXPECT_EQ(kPageID, page_id);
418 ASSERT_EQ(6U, values.size()); 440 ASSERT_EQ(6U, values.size());
419 EXPECT_EQ(ASCIIToUTF16("Elvis Presley"), values[0]); 441 EXPECT_EQ(ASCIIToUTF16("Elvis Presley"), values[0]);
(...skipping 20 matching lines...)
440 // Set up our FormStructures. 462 // Set up our FormStructures.
441 std::vector<FormData> forms; 463 std::vector<FormData> forms;
442 forms.push_back(form); 464 forms.push_back(form);
443 autofill_manager_->FormsSeen(forms); 465 autofill_manager_->FormsSeen(forms);
444 466
445 // The page ID sent to the AutoFillManager from the RenderView, used to send 467 // The page ID sent to the AutoFillManager from the RenderView, used to send
446 // an IPC message back to the renderer. 468 // an IPC message back to the renderer.
447 const int kPageID = 1; 469 const int kPageID = 1;
448 470
449 webkit_glue::FormField field; 471 webkit_glue::FormField field;
450 CreateTestFormField("Name on Card", "nameoncard", "", "text", &field); 472 autofill_unittest::CreateTestFormField(
473 "Name on Card", "nameoncard", "", "text", &field);
451 EXPECT_TRUE(autofill_manager_->GetAutoFillSuggestions(kPageID, false, field)); 474 EXPECT_TRUE(autofill_manager_->GetAutoFillSuggestions(kPageID, false, field));
452 475
453 // Test that we sent the right message to the renderer. 476 // Test that we sent the right message to the renderer.
454 int page_id = 0; 477 int page_id = 0;
455 std::vector<string16> values; 478 std::vector<string16> values;
456 std::vector<string16> labels; 479 std::vector<string16> labels;
457 EXPECT_TRUE(GetAutoFillSuggestionsMessage(&page_id, &values, &labels)); 480 EXPECT_TRUE(GetAutoFillSuggestionsMessage(&page_id, &values, &labels));
458 EXPECT_EQ(kPageID, page_id); 481 EXPECT_EQ(kPageID, page_id);
459 ASSERT_EQ(8U, values.size()); 482 ASSERT_EQ(8U, values.size());
460 EXPECT_EQ(ASCIIToUTF16("Elvis Presley"), values[0]); 483 EXPECT_EQ(ASCIIToUTF16("Elvis Presley"), values[0]);
(...skipping 22 matching lines...)
483 // Set up our FormStructures. 506 // Set up our FormStructures.
484 std::vector<FormData> forms; 507 std::vector<FormData> forms;
485 forms.push_back(form); 508 forms.push_back(form);
486 autofill_manager_->FormsSeen(forms); 509 autofill_manager_->FormsSeen(forms);
487 510
488 // The page ID sent to the AutoFillManager from the RenderView, used to send 511 // The page ID sent to the AutoFillManager from the RenderView, used to send
489 // an IPC message back to the renderer. 512 // an IPC message back to the renderer.
490 const int kPageID = 1; 513 const int kPageID = 1;
491 514
492 webkit_glue::FormField field; 515 webkit_glue::FormField field;
493 CreateTestFormField("First Name", "firstname", "", "text", &field); 516 autofill_unittest::CreateTestFormField(
517 "First Name", "firstname", "", "text", &field);
494 EXPECT_TRUE(autofill_manager_->GetAutoFillSuggestions(kPageID, true, field)); 518 EXPECT_TRUE(autofill_manager_->GetAutoFillSuggestions(kPageID, true, field));
495 519
496 // Test that we sent the right message to the renderer. 520 // Test that we sent the right message to the renderer.
497 int page_id = 0; 521 int page_id = 0;
498 std::vector<string16> values; 522 std::vector<string16> values;
499 std::vector<string16> labels; 523 std::vector<string16> labels;
500 EXPECT_TRUE(GetAutoFillSuggestionsMessage(&page_id, &values, &labels)); 524 EXPECT_TRUE(GetAutoFillSuggestionsMessage(&page_id, &values, &labels));
501 EXPECT_EQ(kPageID, page_id); 525 EXPECT_EQ(kPageID, page_id);
502 ASSERT_EQ(2U, values.size()); 526 ASSERT_EQ(2U, values.size());
503 EXPECT_EQ(ASCIIToUTF16("Elvis"), values[0]); 527 EXPECT_EQ(ASCIIToUTF16("Elvis"), values[0]);
(...skipping 24 matching lines...)
528 int page_id = 0; 552 int page_id = 0;
529 FormData results; 553 FormData results;
530 EXPECT_TRUE(GetAutoFillFormDataFilledMessage(&page_id, &results)); 554 EXPECT_TRUE(GetAutoFillFormDataFilledMessage(&page_id, &results));
531 EXPECT_EQ(ASCIIToUTF16("MyForm"), results.name); 555 EXPECT_EQ(ASCIIToUTF16("MyForm"), results.name);
532 EXPECT_EQ(ASCIIToUTF16("POST"), results.method); 556 EXPECT_EQ(ASCIIToUTF16("POST"), results.method);
533 EXPECT_EQ(GURL("http://myform.com/form.html"), results.origin); 557 EXPECT_EQ(GURL("http://myform.com/form.html"), results.origin);
534 EXPECT_EQ(GURL("http://myform.com/submit.html"), results.action); 558 EXPECT_EQ(GURL("http://myform.com/submit.html"), results.action);
535 ASSERT_EQ(15U, results.fields.size()); 559 ASSERT_EQ(15U, results.fields.size());
536 560
537 webkit_glue::FormField field; 561 webkit_glue::FormField field;
538 CreateTestFormField("First Name", "firstname", "Elvis", "text", &field); 562 autofill_unittest::CreateTestFormField(
563 "First Name", "firstname", "Elvis", "text", &field);
539 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[0])); 564 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[0]));
540 CreateTestFormField("Middle Name", "middlename", "Aaron", "text", &field); 565 autofill_unittest::CreateTestFormField(
566 "Middle Name", "middlename", "Aaron", "text", &field);
541 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[1])); 567 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[1]));
542 CreateTestFormField("Last Name", "lastname", "Presley", "text", &field); 568 autofill_unittest::CreateTestFormField(
569 "Last Name", "lastname", "Presley", "text", &field);
543 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[2])); 570 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[2]));
544 CreateTestFormField("Address Line 1", "billingAddr1", 571 autofill_unittest::CreateTestFormField(
572 "Address Line 1", "billingAddr1",
545 "3734 Elvis Presley Blvd.", "text", &field); 573 "3734 Elvis Presley Blvd.", "text", &field);
546 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[3])); 574 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[3]));
547 CreateTestFormField( 575 autofill_unittest::CreateTestFormField(
548 "Address Line 2", "billingAddr2", "Apt. 10", "text", &field); 576 "Address Line 2", "billingAddr2", "Apt. 10", "text", &field);
549 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[4])); 577 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[4]));
550 CreateTestFormField("City", "billingCity", "Memphis", "text", &field); 578 autofill_unittest::CreateTestFormField(
579 "City", "billingCity", "Memphis", "text", &field);
551 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[5])); 580 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[5]));
552 CreateTestFormField("State", "billingState", "Tennessee", "text", &field); 581 autofill_unittest::CreateTestFormField(
582 "State", "billingState", "Tennessee", "text", &field);
553 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[6])); 583 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[6]));
554 CreateTestFormField("Postal Code", "billingZipcode", "38116", "text", &field); 584 autofill_unittest::CreateTestFormField(
585 "Postal Code", "billingZipcode", "38116", "text", &field);
555 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[7])); 586 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[7]));
556 CreateTestFormField("Country", "billingCountry", "USA", "text", &field); 587 autofill_unittest::CreateTestFormField(
588 "Country", "billingCountry", "USA", "text", &field);
557 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[8])); 589 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[8]));
558 CreateTestFormField( 590 autofill_unittest::CreateTestFormField(
559 "Phone Number", "phonenumber", "12345678901", "text", &field); 591 "Phone Number", "phonenumber", "12345678901", "text", &field);
560 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[9])); 592 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[9]));
561 CreateTestFormField("Email", "email", "theking@gmail.com", "text", &field); 593 autofill_unittest::CreateTestFormField(
594 "Email", "email", "theking@gmail.com", "text", &field);
562 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[10])); 595 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[10]));
563 CreateTestFormField( 596 autofill_unittest::CreateTestFormField(
564 "Name on Card", "nameoncard", "Elvis Presley", "text", &field); 597 "Name on Card", "nameoncard", "Elvis Presley", "text", &field);
565 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[11])); 598 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[11]));
566 CreateTestFormField( 599 autofill_unittest::CreateTestFormField(
567 "Card Number", "cardnumber", "1234567890123456", "text", &field); 600 "Card Number", "cardnumber", "1234567890123456", "text", &field);
568 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[12])); 601 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[12]));
569 CreateTestFormField("Expiration Date", "ccmonth", "04", "text", &field); 602 autofill_unittest::CreateTestFormField(
603 "Expiration Date", "ccmonth", "04", "text", &field);
570 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[13])); 604 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[13]));
571 CreateTestFormField("", "ccyear", "2012", "text", &field); 605 autofill_unittest::CreateTestFormField(
606 "", "ccyear", "2012", "text", &field);
572 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[14])); 607 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[14]));
573 } 608 }
574 609
575 TEST_F(AutoFillManagerTest, FillNonBillingFormSemicolon) { 610 TEST_F(AutoFillManagerTest, FillNonBillingFormSemicolon) {
576 AddSemicolonAutoFillProfile(); 611 AddSemicolonAutoFillProfile();
577 612
578 FormData form; 613 FormData form;
579 CreateTestFormData(&form); 614 CreateTestFormData(&form);
580 615
581 // Set up our FormStructures. 616 // Set up our FormStructures.
(...skipping 13 matching lines...)
595 int page_id = 0; 630 int page_id = 0;
596 FormData results; 631 FormData results;
597 EXPECT_TRUE(GetAutoFillFormDataFilledMessage(&page_id, &results)); 632 EXPECT_TRUE(GetAutoFillFormDataFilledMessage(&page_id, &results));
598 EXPECT_EQ(ASCIIToUTF16("MyForm"), results.name); 633 EXPECT_EQ(ASCIIToUTF16("MyForm"), results.name);
599 EXPECT_EQ(ASCIIToUTF16("POST"), results.method); 634 EXPECT_EQ(ASCIIToUTF16("POST"), results.method);
600 EXPECT_EQ(GURL("http://myform.com/form.html"), results.origin); 635 EXPECT_EQ(GURL("http://myform.com/form.html"), results.origin);
601 EXPECT_EQ(GURL("http://myform.com/submit.html"), results.action); 636 EXPECT_EQ(GURL("http://myform.com/submit.html"), results.action);
602 ASSERT_EQ(11U, results.fields.size()); 637 ASSERT_EQ(11U, results.fields.size());
603 638
604 webkit_glue::FormField field; 639 webkit_glue::FormField field;
605 CreateTestFormField("First Name", "firstname", "Joe", "text", &field); 640 autofill_unittest::CreateTestFormField(
641 "First Name", "firstname", "Joe", "text", &field);
606 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[0])); 642 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[0]));
607 CreateTestFormField("Middle Name", "middlename", "", "text", &field); 643 autofill_unittest::CreateTestFormField(
644 "Middle Name", "middlename", "", "text", &field);
608 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[1])); 645 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[1]));
609 CreateTestFormField("Last Name", "lastname", "Ely", "text", &field); 646 autofill_unittest::CreateTestFormField(
647 "Last Name", "lastname", "Ely", "text", &field);
610 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[2])); 648 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[2]));
611 CreateTestFormField( 649 autofill_unittest::CreateTestFormField(
612 "Address Line 1", "addr1", "916 16th St.", "text", &field); 650 "Address Line 1", "addr1", "916 16th St.", "text", &field);
613 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[3])); 651 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[3]));
614 CreateTestFormField( 652 autofill_unittest::CreateTestFormField(
615 "Address Line 2", "addr2", "Apt. 6", "text", &field); 653 "Address Line 2", "addr2", "Apt. 6", "text", &field);
616 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[4])); 654 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[4]));
617 CreateTestFormField("City", "city", "Lubbock", "text", &field); 655 autofill_unittest::CreateTestFormField(
656 "City", "city", "Lubbock", "text", &field);
618 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[5])); 657 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[5]));
619 CreateTestFormField("State", "state", "Texas", "text", &field); 658 autofill_unittest::CreateTestFormField(
659 "State", "state", "Texas", "text", &field);
620 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[6])); 660 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[6]));
621 CreateTestFormField("Postal Code", "zipcode", "79401", "text", &field); 661 autofill_unittest::CreateTestFormField(
662 "Postal Code", "zipcode", "79401", "text", &field);
622 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[7])); 663 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[7]));
623 CreateTestFormField("Country", "country", "USA", "text", &field); 664 autofill_unittest::CreateTestFormField(
665 "Country", "country", "USA", "text", &field);
624 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[8])); 666 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[8]));
625 CreateTestFormField( 667 autofill_unittest::CreateTestFormField(
626 "Phone Number", "phonenumber", "12345678901", "text", &field); 668 "Phone Number", "phonenumber", "12345678901", "text", &field);
627 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[9])); 669 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[9]));
628 CreateTestFormField("Email", "email", "flatlander@gmail.com", "text", &field); 670 autofill_unittest::CreateTestFormField(
671 "Email", "email", "flatlander@gmail.com", "text", &field);
629 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[10])); 672 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[10]));
630 } 673 }
631 674
632 TEST_F(AutoFillManagerTest, FillBillFormSemicolon) { 675 TEST_F(AutoFillManagerTest, FillBillFormSemicolon) {
633 AddSemicolonAutoFillProfile(); 676 AddSemicolonAutoFillProfile();
634 677
635 FormData form; 678 FormData form;
636 CreateTestFormDataBilling(&form); 679 CreateTestFormDataBilling(&form);
637 680
638 // Set up our FormStructures. 681 // Set up our FormStructures.
(...skipping 10 matching lines...)
649 int page_id = 0; 692 int page_id = 0;
650 FormData results; 693 FormData results;
651 EXPECT_TRUE(GetAutoFillFormDataFilledMessage(&page_id, &results)); 694 EXPECT_TRUE(GetAutoFillFormDataFilledMessage(&page_id, &results));
652 EXPECT_EQ(ASCIIToUTF16("MyForm"), results.name); 695 EXPECT_EQ(ASCIIToUTF16("MyForm"), results.name);
653 EXPECT_EQ(ASCIIToUTF16("POST"), results.method); 696 EXPECT_EQ(ASCIIToUTF16("POST"), results.method);
654 EXPECT_EQ(GURL("http://myform.com/form.html"), results.origin); 697 EXPECT_EQ(GURL("http://myform.com/form.html"), results.origin);
655 EXPECT_EQ(GURL("http://myform.com/submit.html"), results.action); 698 EXPECT_EQ(GURL("http://myform.com/submit.html"), results.action);
656 ASSERT_EQ(15U, results.fields.size()); 699 ASSERT_EQ(15U, results.fields.size());
657 700
658 webkit_glue::FormField field; 701 webkit_glue::FormField field;
659 CreateTestFormField("First Name", "firstname", "Joe", "text", &field); 702 autofill_unittest::CreateTestFormField(
703 "First Name", "firstname", "Joe", "text", &field);
660 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[0])); 704 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[0]));
661 CreateTestFormField("Middle Name", "middlename", "", "text", &field); 705 autofill_unittest::CreateTestFormField(
706 "Middle Name", "middlename", "", "text", &field);
662 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[1])); 707 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[1]));
663 CreateTestFormField("Last Name", "lastname", "Ely", "text", &field); 708 autofill_unittest::CreateTestFormField(
709 "Last Name", "lastname", "Ely", "text", &field);
664 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[2])); 710 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[2]));
665 CreateTestFormField("Address Line 1", "billingAddr1", 711 autofill_unittest::CreateTestFormField(
712 "Address Line 1", "billingAddr1",
666 "3734 Elvis Presley Blvd.", "text", &field); 713 "3734 Elvis Presley Blvd.", "text", &field);
667 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[3])); 714 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[3]));
668 CreateTestFormField( 715 autofill_unittest::CreateTestFormField(
669 "Address Line 2", "billingAddr2", "Apt. 10", "text", &field); 716 "Address Line 2", "billingAddr2", "Apt. 10", "text", &field);
670 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[4])); 717 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[4]));
671 CreateTestFormField("City", "billingCity", "Memphis", "text", &field); 718 autofill_unittest::CreateTestFormField(
719 "City", "billingCity", "Memphis", "text", &field);
672 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[5])); 720 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[5]));
673 CreateTestFormField("State", "billingState", "Tennessee", "text", &field); 721 autofill_unittest::CreateTestFormField(
722 "State", "billingState", "Tennessee", "text", &field);
674 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[6])); 723 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[6]));
675 CreateTestFormField("Postal Code", "billingZipcode", "38116", "text", &field); 724 autofill_unittest::CreateTestFormField(
725 "Postal Code", "billingZipcode", "38116", "text", &field);
676 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[7])); 726 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[7]));
677 CreateTestFormField("Country", "billingCountry", "USA", "text", &field); 727 autofill_unittest::CreateTestFormField(
728 "Country", "billingCountry", "USA", "text", &field);
678 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[8])); 729 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[8]));
679 CreateTestFormField( 730 autofill_unittest::CreateTestFormField(
680 "Phone Number", "phonenumber", "12345678901", "text", &field); 731 "Phone Number", "phonenumber", "12345678901", "text", &field);
681 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[9])); 732 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[9]));
682 CreateTestFormField("Email", "email", "flatlander@gmail.com", "text", &field); 733 autofill_unittest::CreateTestFormField(
734 "Email", "email", "flatlander@gmail.com", "text", &field);
683 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[10])); 735 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[10]));
684 CreateTestFormField( 736 autofill_unittest::CreateTestFormField(
685 "Name on Card", "nameoncard", "Elvis Presley", "text", &field); 737 "Name on Card", "nameoncard", "Elvis Presley", "text", &field);
686 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[11])); 738 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[11]));
687 CreateTestFormField( 739 autofill_unittest::CreateTestFormField(
688 "Card Number", "cardnumber", "1234567890123456", "text", &field); 740 "Card Number", "cardnumber", "1234567890123456", "text", &field);
689 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[12])); 741 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[12]));
690 CreateTestFormField("Expiration Date", "ccmonth", "04", "text", &field); 742 autofill_unittest::CreateTestFormField(
743 "Expiration Date", "ccmonth", "04", "text", &field);
691 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[13])); 744 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[13]));
692 CreateTestFormField("", "ccyear", "2012", "text", &field); 745 autofill_unittest::CreateTestFormField(
746 "", "ccyear", "2012", "text", &field);
693 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[14])); 747 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[14]));
694 } 748 }
695 749
696 TEST_F(AutoFillManagerTest, FillPhoneNumberTest) { 750 TEST_F(AutoFillManagerTest, FillPhoneNumberTest) {
697 FormData form; 751 FormData form;
698 752
699 form.name = ASCIIToUTF16("MyPhoneForm"); 753 form.name = ASCIIToUTF16("MyPhoneForm");
700 form.method = ASCIIToUTF16("POST"); 754 form.method = ASCIIToUTF16("POST");
701 form.origin = GURL("http://myform.com/phone_form.html"); 755 form.origin = GURL("http://myform.com/phone_form.html");
702 form.action = GURL("http://myform.com/phone_submit.html"); 756 form.action = GURL("http://myform.com/phone_submit.html");
703 757
704 webkit_glue::FormField field; 758 webkit_glue::FormField field;
705 759
706 CreateTestFormField("country code", "country code", "", "text", &field); 760 autofill_unittest::CreateTestFormField(
761 "country code", "country code", "", "text", &field);
707 field.set_size(1); 762 field.set_size(1);
708 form.fields.push_back(field); 763 form.fields.push_back(field);
709 CreateTestFormField("area code", "area code", "", "text", &field); 764 autofill_unittest::CreateTestFormField(
765 "area code", "area code", "", "text", &field);
710 field.set_size(3); 766 field.set_size(3);
711 form.fields.push_back(field); 767 form.fields.push_back(field);
712 CreateTestFormField("phone", "phone prefix", "1", "text", &field); 768 autofill_unittest::CreateTestFormField(
769 "phone", "phone prefix", "1", "text", &field);
713 field.set_size(3); 770 field.set_size(3);
714 form.fields.push_back(field); 771 form.fields.push_back(field);
715 CreateTestFormField("-", "phone suffix", "", "text", &field); 772 autofill_unittest::CreateTestFormField(
773 "-", "phone suffix", "", "text", &field);
716 field.set_size(4); 774 field.set_size(4);
717 form.fields.push_back(field); 775 form.fields.push_back(field);
718 CreateTestFormField("Phone Extension", "ext", "", "text", &field); 776 autofill_unittest::CreateTestFormField(
777 "Phone Extension", "ext", "", "text", &field);
719 field.set_size(3); 778 field.set_size(3);
720 form.fields.push_back(field); 779 form.fields.push_back(field);
721 780
722 // Set up our FormStructures. 781 // Set up our FormStructures.
723 std::vector<FormData> forms; 782 std::vector<FormData> forms;
724 forms.push_back(form); 783 forms.push_back(form);
725 autofill_manager_->FormsSeen(forms); 784 autofill_manager_->FormsSeen(forms);
726 785
727 AutoFillProfile *work_profile = autofill_manager_->GetLabeledProfile("Work"); 786 AutoFillProfile *work_profile = autofill_manager_->GetLabeledProfile("Work");
728 EXPECT_TRUE(work_profile != NULL); 787 EXPECT_TRUE(work_profile != NULL);
(...skipping 30 matching lines...)
759 } 818 }
760 819
761 TEST_F(AutoFillManagerTest, FormChangesRemoveField) { 820 TEST_F(AutoFillManagerTest, FormChangesRemoveField) {
762 FormData form; 821 FormData form;
763 form.name = ASCIIToUTF16("MyForm"); 822 form.name = ASCIIToUTF16("MyForm");
764 form.method = ASCIIToUTF16("POST"); 823 form.method = ASCIIToUTF16("POST");
765 form.origin = GURL("http://myform.com/form.html"); 824 form.origin = GURL("http://myform.com/form.html");
766 form.action = GURL("http://myform.com/submit.html"); 825 form.action = GURL("http://myform.com/submit.html");
767 826
768 webkit_glue::FormField field; 827 webkit_glue::FormField field;
769 CreateTestFormField("First Name", "firstname", "", "text", &field); 828 autofill_unittest::CreateTestFormField(
829 "First Name", "firstname", "", "text", &field);
770 form.fields.push_back(field); 830 form.fields.push_back(field);
771 CreateTestFormField("Middle Name", "middlename", "", "text", &field); 831 autofill_unittest::CreateTestFormField(
832 "Middle Name", "middlename", "", "text", &field);
772 form.fields.push_back(field); 833 form.fields.push_back(field);
773 CreateTestFormField("Last Name", "lastname", "", "text", &field); 834 autofill_unittest::CreateTestFormField(
835 "Last Name", "lastname", "", "text", &field);
774 form.fields.push_back(field); 836 form.fields.push_back(field);
775 CreateTestFormField("Phone Number", "phonenumber", "", "text", &field); 837 autofill_unittest::CreateTestFormField(
838 "Phone Number", "phonenumber", "", "text", &field);
776 form.fields.push_back(field); 839 form.fields.push_back(field);
777 CreateTestFormField("Email", "email", "", "text", &field); 840 autofill_unittest::CreateTestFormField(
841 "Email", "email", "", "text", &field);
778 form.fields.push_back(field); 842 form.fields.push_back(field);
779 843
780 // Set up our FormStructures. 844 // Set up our FormStructures.
781 std::vector<FormData> forms; 845 std::vector<FormData> forms;
782 forms.push_back(form); 846 forms.push_back(form);
783 autofill_manager_->FormsSeen(forms); 847 autofill_manager_->FormsSeen(forms);
784 848
785 // Now, after the call to |FormsSeen| we remove the phone number field before 849 // Now, after the call to |FormsSeen| we remove the phone number field before
786 // filling. 850 // filling.
787 form.fields.erase(form.fields.begin() + 3); 851 form.fields.erase(form.fields.begin() + 3);
788 852
789 // The page ID sent to the AutoFillManager from the RenderView, used to send 853 // The page ID sent to the AutoFillManager from the RenderView, used to send
790 // an IPC message back to the renderer. 854 // an IPC message back to the renderer.
791 const int kPageID = 1; 855 const int kPageID = 1;
792 EXPECT_TRUE( 856 EXPECT_TRUE(
793 autofill_manager_->FillAutoFillFormData(kPageID, 857 autofill_manager_->FillAutoFillFormData(kPageID,
794 form, 858 form,
795 ASCIIToUTF16("Elvis"), 859 ASCIIToUTF16("Elvis"),
796 ASCIIToUTF16("Home"))); 860 ASCIIToUTF16("Home")));
797 861
798 int page_id = 0; 862 int page_id = 0;
799 FormData results; 863 FormData results;
800 EXPECT_TRUE(GetAutoFillFormDataFilledMessage(&page_id, &results)); 864 EXPECT_TRUE(GetAutoFillFormDataFilledMessage(&page_id, &results));
801 EXPECT_EQ(ASCIIToUTF16("MyForm"), results.name); 865 EXPECT_EQ(ASCIIToUTF16("MyForm"), results.name);
802 EXPECT_EQ(ASCIIToUTF16("POST"), results.method); 866 EXPECT_EQ(ASCIIToUTF16("POST"), results.method);
803 EXPECT_EQ(GURL("http://myform.com/form.html"), results.origin); 867 EXPECT_EQ(GURL("http://myform.com/form.html"), results.origin);
804 EXPECT_EQ(GURL("http://myform.com/submit.html"), results.action); 868 EXPECT_EQ(GURL("http://myform.com/submit.html"), results.action);
805 ASSERT_EQ(4U, results.fields.size()); 869 ASSERT_EQ(4U, results.fields.size());
806 870
807 CreateTestFormField("First Name", "firstname", "Elvis", "text", &field); 871 autofill_unittest::CreateTestFormField(
872 "First Name", "firstname", "Elvis", "text", &field);
808 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[0])); 873 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[0]));
809 CreateTestFormField("Middle Name", "middlename", "Aaron", "text", &field); 874 autofill_unittest::CreateTestFormField(
875 "Middle Name", "middlename", "Aaron", "text", &field);
810 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[1])); 876 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[1]));
811 CreateTestFormField("Last Name", "lastname", "Presley", "text", &field); 877 autofill_unittest::CreateTestFormField(
878 "Last Name", "lastname", "Presley", "text", &field);
812 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[2])); 879 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[2]));
813 CreateTestFormField( 880 autofill_unittest::CreateTestFormField(
814 "Email", "email", "theking@gmail.com", "text", &field); 881 "Email", "email", "theking@gmail.com", "text", &field);
815 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[3])); 882 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[3]));
816 } 883 }
817 884
818 TEST_F(AutoFillManagerTest, FormChangesAddField) { 885 TEST_F(AutoFillManagerTest, FormChangesAddField) {
819 FormData form; 886 FormData form;
820 form.name = ASCIIToUTF16("MyForm"); 887 form.name = ASCIIToUTF16("MyForm");
821 form.method = ASCIIToUTF16("POST"); 888 form.method = ASCIIToUTF16("POST");
822 form.origin = GURL("http://myform.com/form.html"); 889 form.origin = GURL("http://myform.com/form.html");
823 form.action = GURL("http://myform.com/submit.html"); 890 form.action = GURL("http://myform.com/submit.html");
824 891
825 webkit_glue::FormField field; 892 webkit_glue::FormField field;
826 CreateTestFormField("First Name", "firstname", "", "text", &field); 893 autofill_unittest::CreateTestFormField(
894 "First Name", "firstname", "", "text", &field);
827 form.fields.push_back(field); 895 form.fields.push_back(field);
828 CreateTestFormField("Middle Name", "middlename", "", "text", &field); 896 autofill_unittest::CreateTestFormField(
897 "Middle Name", "middlename", "", "text", &field);
829 form.fields.push_back(field); 898 form.fields.push_back(field);
830 CreateTestFormField("Last Name", "lastname", "", "text", &field); 899 autofill_unittest::CreateTestFormField(
900 "Last Name", "lastname", "", "text", &field);
831 // Note: absent phone number. Adding this below. 901 // Note: absent phone number. Adding this below.
832 form.fields.push_back(field); 902 form.fields.push_back(field);
833 CreateTestFormField("Email", "email", "", "text", &field); 903 autofill_unittest::CreateTestFormField(
904 "Email", "email", "", "text", &field);
834 form.fields.push_back(field); 905 form.fields.push_back(field);
835 906
836 // Set up our FormStructures. 907 // Set up our FormStructures.
837 std::vector<FormData> forms; 908 std::vector<FormData> forms;
838 forms.push_back(form); 909 forms.push_back(form);
839 autofill_manager_->FormsSeen(forms); 910 autofill_manager_->FormsSeen(forms);
840 911
841 // Now, after the call to |FormsSeen| we add the phone number field before 912 // Now, after the call to |FormsSeen| we add the phone number field before
842 // filling. 913 // filling.
843 CreateTestFormField("Phone Number", "phonenumber", "", "text", &field); 914 autofill_unittest::CreateTestFormField(
915 "Phone Number", "phonenumber", "", "text", &field);
844 form.fields.insert(form.fields.begin() + 3, field); 916 form.fields.insert(form.fields.begin() + 3, field);
845 917
846 // The page ID sent to the AutoFillManager from the RenderView, used to send 918 // The page ID sent to the AutoFillManager from the RenderView, used to send
847 // an IPC message back to the renderer. 919 // an IPC message back to the renderer.
848 const int kPageID = 1; 920 const int kPageID = 1;
849 EXPECT_TRUE( 921 EXPECT_TRUE(
850 autofill_manager_->FillAutoFillFormData(kPageID, 922 autofill_manager_->FillAutoFillFormData(kPageID,
851 form, 923 form,
852 ASCIIToUTF16("Elvis"), 924 ASCIIToUTF16("Elvis"),
853 ASCIIToUTF16("Home"))); 925 ASCIIToUTF16("Home")));
854 926
855 int page_id = 0; 927 int page_id = 0;
856 FormData results; 928 FormData results;
857 EXPECT_TRUE(GetAutoFillFormDataFilledMessage(&page_id, &results)); 929 EXPECT_TRUE(GetAutoFillFormDataFilledMessage(&page_id, &results));
858 EXPECT_EQ(ASCIIToUTF16("MyForm"), results.name); 930 EXPECT_EQ(ASCIIToUTF16("MyForm"), results.name);
859 EXPECT_EQ(ASCIIToUTF16("POST"), results.method); 931 EXPECT_EQ(ASCIIToUTF16("POST"), results.method);
860 EXPECT_EQ(GURL("http://myform.com/form.html"), results.origin); 932 EXPECT_EQ(GURL("http://myform.com/form.html"), results.origin);
861 EXPECT_EQ(GURL("http://myform.com/submit.html"), results.action); 933 EXPECT_EQ(GURL("http://myform.com/submit.html"), results.action);
862 ASSERT_EQ(5U, results.fields.size()); 934 ASSERT_EQ(5U, results.fields.size());
863 935
864 CreateTestFormField("First Name", "firstname", "Elvis", "text", &field); 936 autofill_unittest::CreateTestFormField(
937 "First Name", "firstname", "Elvis", "text", &field);
865 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[0])); 938 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[0]));
866 CreateTestFormField("Middle Name", "middlename", "Aaron", "text", &field); 939 autofill_unittest::CreateTestFormField(
940 "Middle Name", "middlename", "Aaron", "text", &field);
867 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[1])); 941 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[1]));
868 CreateTestFormField("Last Name", "lastname", "Presley", "text", &field); 942 autofill_unittest::CreateTestFormField(
943 "Last Name", "lastname", "Presley", "text", &field);
869 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[2])); 944 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[2]));
870 CreateTestFormField("Phone Number", "phonenumber", "", "text", &field); 945 autofill_unittest::CreateTestFormField(
946 "Phone Number", "phonenumber", "", "text", &field);
871 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[3])); 947 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[3]));
872 CreateTestFormField( 948 autofill_unittest::CreateTestFormField(
873 "Email", "email", "theking@gmail.com", "text", &field); 949 "Email", "email", "theking@gmail.com", "text", &field);
874 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[4])); 950 EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[4]));
875 } 951 }
876 952
877 TEST_F(AutoFillManagerTest, InfoBarShown) {
878 FormData form;
879 form.name = ASCIIToUTF16("MyForm");
880 form.method = ASCIIToUTF16("POST");
881 form.origin = GURL("http://myform.com/form.html");
882 form.action = GURL("http://myform.com/submit.html");
883
884 webkit_glue::FormField field;
885 CreateTestFormField("E-mail", "one", "one", "text", &field);
886 form.fields.push_back(field);
887 CreateTestFormField("E-mail", "two", "two", "text", &field);
888 form.fields.push_back(field);
889 CreateTestFormField("E-mail", "three", "three", "text", &field);
890 form.fields.push_back(field);
891
892 // Set up our FormStructures.
893 std::vector<FormData> forms;
894 forms.push_back(form);
895 autofill_manager_->FormsSeen(forms);
896
897 // Submit the form.
898 autofill_manager_->FormSubmitted(form);
899
900 // Check that the 'AutoFill InfoBar shown' pref is set.
901 PrefService* prefs = profile()->GetPrefs();
902 EXPECT_TRUE(prefs->GetBoolean(prefs::kAutoFillInfoBarShown));
903 }
904
905 TEST_F(AutoFillManagerTest, HiddenFields) { 953 TEST_F(AutoFillManagerTest, HiddenFields) {
906 FormData form; 954 FormData form;
907 form.name = ASCIIToUTF16("MyForm"); 955 form.name = ASCIIToUTF16("MyForm");
908 form.method = ASCIIToUTF16("POST"); 956 form.method = ASCIIToUTF16("POST");
909 form.origin = GURL("http://myform.com/form.html"); 957 form.origin = GURL("http://myform.com/form.html");
910 form.action = GURL("http://myform.com/submit.html"); 958 form.action = GURL("http://myform.com/submit.html");
911 959
912 webkit_glue::FormField field; 960 webkit_glue::FormField field;
913 CreateTestFormField("E-mail", "one", "one", "hidden", &field); 961 autofill_unittest::CreateTestFormField(
962 "E-mail", "one", "one", "hidden", &field);
914 form.fields.push_back(field); 963 form.fields.push_back(field);
915 CreateTestFormField("E-mail", "two", "two", "hidden", &field); 964 autofill_unittest::CreateTestFormField(
965 "E-mail", "two", "two", "hidden", &field);
916 form.fields.push_back(field); 966 form.fields.push_back(field);
917 CreateTestFormField("E-mail", "three", "three", "hidden", &field); 967 autofill_unittest::CreateTestFormField(
968 "E-mail", "three", "three", "hidden", &field);
918 form.fields.push_back(field); 969 form.fields.push_back(field);
919 970
920 // Set up our FormStructures. 971 // Set up our FormStructures.
921 std::vector<FormData> forms; 972 std::vector<FormData> forms;
922 forms.push_back(form); 973 forms.push_back(form);
923 autofill_manager_->FormsSeen(forms); 974 autofill_manager_->FormsSeen(forms);
924 975
925 // Submit the form. 976 // Submit the form.
926 autofill_manager_->FormSubmitted(form); 977 autofill_manager_->FormSubmitted(form);
927 978
928 // Check that the 'AutoFill InfoBar shown' pref is not set. 979 // TODO(jhawkins): We can't use the InfoBar anymore to determine if we saved
929 PrefService* prefs = profile()->GetPrefs(); 980 // fields. Need to query the PDM.
930 EXPECT_FALSE(prefs->GetBoolean(prefs::kAutoFillInfoBarShown));
931 } 981 }
932 982
933 } // namespace 983 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/autofill/autofill_manager.cc ('k') | chrome/browser/autofill/autofill_profile.h » ('j') | no next file with comments »

Powered by Google App Engine