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

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

Issue 22040002: [Autofill] Add a separate enumeration for HTML field type hints. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix browser test Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
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/form_structure.h" 5 #include "components/autofill/core/browser/form_structure.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "components/autofill/content/browser/autocheckout_page_meta_data.h" 10 #include "components/autofill/content/browser/autocheckout_page_meta_data.h"
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 form.fields.push_back(field); 435 form.fields.push_back(field);
436 436
437 form_structure.reset(new FormStructure(form, std::string())); 437 form_structure.reset(new FormStructure(form, std::string()));
438 form_structure->DetermineHeuristicTypes(TestAutofillMetrics()); 438 form_structure->DetermineHeuristicTypes(TestAutofillMetrics());
439 EXPECT_TRUE(form_structure->IsAutofillable(true)); 439 EXPECT_TRUE(form_structure->IsAutofillable(true));
440 440
441 // Expect the correct number of fields. 441 // Expect the correct number of fields.
442 ASSERT_EQ(3U, form_structure->field_count()); 442 ASSERT_EQ(3U, form_structure->field_count());
443 ASSERT_EQ(3U, form_structure->autofill_count()); 443 ASSERT_EQ(3U, form_structure->autofill_count());
444 444
445 EXPECT_EQ(NAME_FIRST, form_structure->field(0)->heuristic_type()); 445 EXPECT_EQ(HTML_TYPE_GIVEN_NAME, form_structure->field(0)->html_type());
446 EXPECT_EQ(NAME_LAST, form_structure->field(1)->heuristic_type()); 446 EXPECT_EQ(HTML_TYPE_FAMILY_NAME, form_structure->field(1)->html_type());
447 EXPECT_EQ(EMAIL_ADDRESS, form_structure->field(2)->heuristic_type()); 447 EXPECT_EQ(HTML_TYPE_EMAIL, form_structure->field(2)->html_type());
448 EXPECT_EQ(UNKNOWN_TYPE, form_structure->field(0)->heuristic_type());
449 EXPECT_EQ(UNKNOWN_TYPE, form_structure->field(1)->heuristic_type());
450 EXPECT_EQ(UNKNOWN_TYPE, form_structure->field(2)->heuristic_type());
448 } 451 }
449 452
450 // Verify that we can correctly process the 'autocomplete' attribute for phone 453 // Verify that we can correctly process the 'autocomplete' attribute for phone
451 // number types (especially phone prefixes and suffixes). 454 // number types (especially phone prefixes and suffixes).
452 TEST(FormStructureTest, HeuristicsAutocompleteAttributePhoneTypes) { 455 TEST(FormStructureTest, HeuristicsAutocompleteAttributePhoneTypes) {
453 scoped_ptr<FormStructure> form_structure; 456 scoped_ptr<FormStructure> form_structure;
454 FormData form; 457 FormData form;
455 form.method = ASCIIToUTF16("post"); 458 form.method = ASCIIToUTF16("post");
456 459
457 FormFieldData field; 460 FormFieldData field;
(...skipping 15 matching lines...) Expand all
473 form.fields.push_back(field); 476 form.fields.push_back(field);
474 477
475 form_structure.reset(new FormStructure(form, std::string())); 478 form_structure.reset(new FormStructure(form, std::string()));
476 form_structure->DetermineHeuristicTypes(TestAutofillMetrics()); 479 form_structure->DetermineHeuristicTypes(TestAutofillMetrics());
477 EXPECT_TRUE(form_structure->IsAutofillable(true)); 480 EXPECT_TRUE(form_structure->IsAutofillable(true));
478 481
479 // Expect the correct number of fields. 482 // Expect the correct number of fields.
480 ASSERT_EQ(3U, form_structure->field_count()); 483 ASSERT_EQ(3U, form_structure->field_count());
481 EXPECT_EQ(3U, form_structure->autofill_count()); 484 EXPECT_EQ(3U, form_structure->autofill_count());
482 485
483 EXPECT_EQ(PHONE_HOME_NUMBER, form_structure->field(0)->heuristic_type()); 486 EXPECT_EQ(HTML_TYPE_TEL_LOCAL, form_structure->field(0)->html_type());
484 EXPECT_EQ(AutofillField::IGNORED, form_structure->field(0)->phone_part()); 487 EXPECT_EQ(AutofillField::IGNORED, form_structure->field(0)->phone_part());
485 EXPECT_EQ(PHONE_HOME_NUMBER, form_structure->field(1)->heuristic_type()); 488 EXPECT_EQ(HTML_TYPE_TEL_LOCAL_PREFIX, form_structure->field(1)->html_type());
486 EXPECT_EQ(AutofillField::PHONE_PREFIX, 489 EXPECT_EQ(AutofillField::PHONE_PREFIX,
487 form_structure->field(1)->phone_part()); 490 form_structure->field(1)->phone_part());
488 EXPECT_EQ(PHONE_HOME_NUMBER, form_structure->field(2)->heuristic_type()); 491 EXPECT_EQ(HTML_TYPE_TEL_LOCAL_SUFFIX, form_structure->field(2)->html_type());
489 EXPECT_EQ(AutofillField::PHONE_SUFFIX, 492 EXPECT_EQ(AutofillField::PHONE_SUFFIX,
490 form_structure->field(2)->phone_part()); 493 form_structure->field(2)->phone_part());
491 } 494 }
492 495
493 // If at least one field includes type hints in the 'autocomplete' attribute, we 496 // If at least one field includes type hints in the 'autocomplete' attribute, we
494 // should not try to apply any other heuristics. 497 // should not try to apply any other heuristics.
495 TEST(FormStructureTest, AutocompleteAttributeOverridesOtherHeuristics) { 498 TEST(FormStructureTest, AutocompleteAttributeOverridesOtherHeuristics) {
496 scoped_ptr<FormStructure> form_structure; 499 scoped_ptr<FormStructure> form_structure;
497 FormData form; 500 FormData form;
498 form.method = ASCIIToUTF16("post"); 501 form.method = ASCIIToUTF16("post");
(...skipping 1955 matching lines...) Expand 10 before | Expand all | Expand 10 after
2454 "<autofillqueryresponse><field autofilltype=\"3\" />" 2457 "<autofillqueryresponse><field autofilltype=\"3\" />"
2455 "<field autofilltype=\"9\" /></autofillqueryresponse>"; 2458 "<field autofilltype=\"9\" /></autofillqueryresponse>";
2456 FormStructure::ParseQueryResponse(kServerResponse, forms.get(), 2459 FormStructure::ParseQueryResponse(kServerResponse, forms.get(),
2457 &page_meta_data, TestAutofillMetrics()); 2460 &page_meta_data, TestAutofillMetrics());
2458 ASSERT_EQ(NAME_FIRST, forms[0]->field(0)->server_type()); 2461 ASSERT_EQ(NAME_FIRST, forms[0]->field(0)->server_type());
2459 ASSERT_EQ(NO_SERVER_DATA, forms[0]->field(1)->server_type()); 2462 ASSERT_EQ(NO_SERVER_DATA, forms[0]->field(1)->server_type());
2460 ASSERT_EQ(EMAIL_ADDRESS, forms[0]->field(2)->server_type()); 2463 ASSERT_EQ(EMAIL_ADDRESS, forms[0]->field(2)->server_type());
2461 } 2464 }
2462 2465
2463 } // namespace autofill 2466 } // 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