OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/guid.h" | 8 #include "base/guid.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
11 #include "base/utf_string_conversions.h" | 11 #include "base/utf_string_conversions.h" |
12 #include "chrome/browser/autofill/autofill_common_test.h" | 12 #include "chrome/browser/autofill/autofill_common_test.h" |
13 #include "chrome/browser/autofill/autofill_profile.h" | 13 #include "chrome/browser/autofill/autofill_profile.h" |
14 #include "chrome/browser/autofill/form_structure.h" | 14 #include "chrome/browser/autofill/form_structure.h" |
15 #include "chrome/browser/autofill/personal_data_manager.h" | 15 #include "chrome/browser/autofill/personal_data_manager.h" |
16 #include "chrome/browser/autofill/personal_data_manager_observer.h" | 16 #include "chrome/browser/autofill/personal_data_manager_observer.h" |
17 #include "chrome/browser/password_manager/encryptor.h" | 17 #include "chrome/browser/password_manager/encryptor.h" |
18 #include "chrome/browser/webdata/web_data_service.h" | 18 #include "chrome/browser/webdata/web_data_service.h" |
19 #include "chrome/browser/webdata/web_data_service_factory.h" | 19 #include "chrome/browser/webdata/web_data_service_factory.h" |
| 20 #include "chrome/common/form_data.h" |
20 #include "chrome/test/base/testing_browser_process.h" | 21 #include "chrome/test/base/testing_browser_process.h" |
21 #include "chrome/test/base/testing_profile.h" | 22 #include "chrome/test/base/testing_profile.h" |
22 #include "content/public/browser/notification_details.h" | 23 #include "content/public/browser/notification_details.h" |
23 #include "content/public/browser/notification_registrar.h" | 24 #include "content/public/browser/notification_registrar.h" |
24 #include "content/public/browser/notification_source.h" | 25 #include "content/public/browser/notification_source.h" |
25 #include "content/public/browser/notification_types.h" | 26 #include "content/public/browser/notification_types.h" |
26 #include "content/public/test/mock_notification_observer.h" | 27 #include "content/public/test/mock_notification_observer.h" |
27 #include "content/public/test/test_browser_thread.h" | 28 #include "content/public/test/test_browser_thread.h" |
28 #include "testing/gmock/include/gmock/gmock.h" | 29 #include "testing/gmock/include/gmock/gmock.h" |
29 #include "testing/gtest/include/gtest/gtest.h" | 30 #include "testing/gtest/include/gtest/gtest.h" |
30 #include "webkit/forms/form_data.h" | |
31 | 31 |
32 using content::BrowserThread; | 32 using content::BrowserThread; |
33 using webkit::forms::FormData; | |
34 | 33 |
35 ACTION(QuitUIMessageLoop) { | 34 ACTION(QuitUIMessageLoop) { |
36 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 35 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
37 MessageLoop::current()->Quit(); | 36 MessageLoop::current()->Quit(); |
38 } | 37 } |
39 | 38 |
40 class PersonalDataLoadedObserverMock : public PersonalDataManagerObserver { | 39 class PersonalDataLoadedObserverMock : public PersonalDataManagerObserver { |
41 public: | 40 public: |
42 PersonalDataLoadedObserverMock() {} | 41 PersonalDataLoadedObserverMock() {} |
43 virtual ~PersonalDataLoadedObserverMock() {} | 42 virtual ~PersonalDataLoadedObserverMock() {} |
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
476 OnPersonalDataChanged()).WillOnce(QuitUIMessageLoop()); | 475 OnPersonalDataChanged()).WillOnce(QuitUIMessageLoop()); |
477 MessageLoop::current()->Run(); | 476 MessageLoop::current()->Run(); |
478 | 477 |
479 const std::vector<AutofillProfile*>& results3 = personal_data_->profiles(); | 478 const std::vector<AutofillProfile*>& results3 = personal_data_->profiles(); |
480 ASSERT_EQ(1U, results3.size()); | 479 ASSERT_EQ(1U, results3.size()); |
481 EXPECT_EQ(profile0, *results2[0]); | 480 EXPECT_EQ(profile0, *results2[0]); |
482 } | 481 } |
483 | 482 |
484 TEST_F(PersonalDataManagerTest, ImportFormData) { | 483 TEST_F(PersonalDataManagerTest, ImportFormData) { |
485 FormData form; | 484 FormData form; |
486 webkit::forms::FormField field; | 485 FormFieldData field; |
487 autofill_test::CreateTestFormField( | 486 autofill_test::CreateTestFormField( |
488 "First name:", "first_name", "George", "text", &field); | 487 "First name:", "first_name", "George", "text", &field); |
489 form.fields.push_back(field); | 488 form.fields.push_back(field); |
490 autofill_test::CreateTestFormField( | 489 autofill_test::CreateTestFormField( |
491 "Last name:", "last_name", "Washington", "text", &field); | 490 "Last name:", "last_name", "Washington", "text", &field); |
492 form.fields.push_back(field); | 491 form.fields.push_back(field); |
493 autofill_test::CreateTestFormField( | 492 autofill_test::CreateTestFormField( |
494 "Email:", "email", "theprez@gmail.com", "text", &field); | 493 "Email:", "email", "theprez@gmail.com", "text", &field); |
495 form.fields.push_back(field); | 494 form.fields.push_back(field); |
496 autofill_test::CreateTestFormField( | 495 autofill_test::CreateTestFormField( |
(...skipping 24 matching lines...) Expand all Loading... |
521 autofill_test::SetProfileInfo(&expected, "George", NULL, | 520 autofill_test::SetProfileInfo(&expected, "George", NULL, |
522 "Washington", "theprez@gmail.com", NULL, "21 Laussat St", NULL, | 521 "Washington", "theprez@gmail.com", NULL, "21 Laussat St", NULL, |
523 "San Francisco", "California", "94102", NULL, NULL); | 522 "San Francisco", "California", "94102", NULL, NULL); |
524 const std::vector<AutofillProfile*>& results = personal_data_->profiles(); | 523 const std::vector<AutofillProfile*>& results = personal_data_->profiles(); |
525 ASSERT_EQ(1U, results.size()); | 524 ASSERT_EQ(1U, results.size()); |
526 EXPECT_EQ(0, expected.Compare(*results[0])); | 525 EXPECT_EQ(0, expected.Compare(*results[0])); |
527 } | 526 } |
528 | 527 |
529 TEST_F(PersonalDataManagerTest, ImportFormDataBadEmail) { | 528 TEST_F(PersonalDataManagerTest, ImportFormDataBadEmail) { |
530 FormData form; | 529 FormData form; |
531 webkit::forms::FormField field; | 530 FormFieldData field; |
532 autofill_test::CreateTestFormField( | 531 autofill_test::CreateTestFormField( |
533 "First name:", "first_name", "George", "text", &field); | 532 "First name:", "first_name", "George", "text", &field); |
534 form.fields.push_back(field); | 533 form.fields.push_back(field); |
535 autofill_test::CreateTestFormField( | 534 autofill_test::CreateTestFormField( |
536 "Last name:", "last_name", "Washington", "text", &field); | 535 "Last name:", "last_name", "Washington", "text", &field); |
537 form.fields.push_back(field); | 536 form.fields.push_back(field); |
538 autofill_test::CreateTestFormField( | 537 autofill_test::CreateTestFormField( |
539 "Email:", "email", "bogus", "text", &field); | 538 "Email:", "email", "bogus", "text", &field); |
540 form.fields.push_back(field); | 539 form.fields.push_back(field); |
541 autofill_test::CreateTestFormField( | 540 autofill_test::CreateTestFormField( |
(...skipping 14 matching lines...) Expand all Loading... |
556 EXPECT_FALSE(personal_data_->ImportFormData(form_structure, | 555 EXPECT_FALSE(personal_data_->ImportFormData(form_structure, |
557 &imported_credit_card)); | 556 &imported_credit_card)); |
558 ASSERT_EQ(static_cast<CreditCard*>(NULL), imported_credit_card); | 557 ASSERT_EQ(static_cast<CreditCard*>(NULL), imported_credit_card); |
559 | 558 |
560 const std::vector<AutofillProfile*>& results = personal_data_->profiles(); | 559 const std::vector<AutofillProfile*>& results = personal_data_->profiles(); |
561 ASSERT_EQ(0U, results.size()); | 560 ASSERT_EQ(0U, results.size()); |
562 } | 561 } |
563 | 562 |
564 TEST_F(PersonalDataManagerTest, ImportFormDataNotEnoughFilledFields) { | 563 TEST_F(PersonalDataManagerTest, ImportFormDataNotEnoughFilledFields) { |
565 FormData form; | 564 FormData form; |
566 webkit::forms::FormField field; | 565 FormFieldData field; |
567 autofill_test::CreateTestFormField( | 566 autofill_test::CreateTestFormField( |
568 "First name:", "first_name", "George", "text", &field); | 567 "First name:", "first_name", "George", "text", &field); |
569 form.fields.push_back(field); | 568 form.fields.push_back(field); |
570 autofill_test::CreateTestFormField( | 569 autofill_test::CreateTestFormField( |
571 "Last name:", "last_name", "Washington", "text", &field); | 570 "Last name:", "last_name", "Washington", "text", &field); |
572 form.fields.push_back(field); | 571 form.fields.push_back(field); |
573 autofill_test::CreateTestFormField( | 572 autofill_test::CreateTestFormField( |
574 "Card number:", "card_number", "4111 1111 1111 1111", "text", &field); | 573 "Card number:", "card_number", "4111 1111 1111 1111", "text", &field); |
575 form.fields.push_back(field); | 574 form.fields.push_back(field); |
576 FormStructure form_structure(form); | 575 FormStructure form_structure(form); |
577 form_structure.DetermineHeuristicTypes(); | 576 form_structure.DetermineHeuristicTypes(); |
578 const CreditCard* imported_credit_card; | 577 const CreditCard* imported_credit_card; |
579 EXPECT_FALSE(personal_data_->ImportFormData(form_structure, | 578 EXPECT_FALSE(personal_data_->ImportFormData(form_structure, |
580 &imported_credit_card)); | 579 &imported_credit_card)); |
581 ASSERT_FALSE(imported_credit_card); | 580 ASSERT_FALSE(imported_credit_card); |
582 | 581 |
583 const std::vector<AutofillProfile*>& profiles = personal_data_->profiles(); | 582 const std::vector<AutofillProfile*>& profiles = personal_data_->profiles(); |
584 ASSERT_EQ(0U, profiles.size()); | 583 ASSERT_EQ(0U, profiles.size()); |
585 const std::vector<CreditCard*>& credit_cards = personal_data_->credit_cards(); | 584 const std::vector<CreditCard*>& credit_cards = personal_data_->credit_cards(); |
586 ASSERT_EQ(0U, credit_cards.size()); | 585 ASSERT_EQ(0U, credit_cards.size()); |
587 } | 586 } |
588 | 587 |
589 TEST_F(PersonalDataManagerTest, ImportPhoneNumberSplitAcrossMultipleFields) { | 588 TEST_F(PersonalDataManagerTest, ImportPhoneNumberSplitAcrossMultipleFields) { |
590 FormData form; | 589 FormData form; |
591 webkit::forms::FormField field; | 590 FormFieldData field; |
592 autofill_test::CreateTestFormField( | 591 autofill_test::CreateTestFormField( |
593 "First name:", "first_name", "George", "text", &field); | 592 "First name:", "first_name", "George", "text", &field); |
594 form.fields.push_back(field); | 593 form.fields.push_back(field); |
595 autofill_test::CreateTestFormField( | 594 autofill_test::CreateTestFormField( |
596 "Last name:", "last_name", "Washington", "text", &field); | 595 "Last name:", "last_name", "Washington", "text", &field); |
597 form.fields.push_back(field); | 596 form.fields.push_back(field); |
598 autofill_test::CreateTestFormField( | 597 autofill_test::CreateTestFormField( |
599 "Phone #:", "home_phone_area_code", "650", "text", &field); | 598 "Phone #:", "home_phone_area_code", "650", "text", &field); |
600 field.max_length = 3; | 599 field.max_length = 3; |
601 form.fields.push_back(field); | 600 form.fields.push_back(field); |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
672 EXPECT_EQ(credit_card0.guid(), results[0]->guid()); | 671 EXPECT_EQ(credit_card0.guid(), results[0]->guid()); |
673 EXPECT_EQ(credit_card1.guid(), results[1]->guid()); | 672 EXPECT_EQ(credit_card1.guid(), results[1]->guid()); |
674 EXPECT_EQ(credit_card2.guid(), results[2]->guid()); | 673 EXPECT_EQ(credit_card2.guid(), results[2]->guid()); |
675 EXPECT_EQ(credit_card3.guid(), results[3]->guid()); | 674 EXPECT_EQ(credit_card3.guid(), results[3]->guid()); |
676 EXPECT_EQ(credit_card4.guid(), results[4]->guid()); | 675 EXPECT_EQ(credit_card4.guid(), results[4]->guid()); |
677 EXPECT_EQ(credit_card5.guid(), results[5]->guid()); | 676 EXPECT_EQ(credit_card5.guid(), results[5]->guid()); |
678 } | 677 } |
679 | 678 |
680 TEST_F(PersonalDataManagerTest, AggregateTwoDifferentProfiles) { | 679 TEST_F(PersonalDataManagerTest, AggregateTwoDifferentProfiles) { |
681 FormData form1; | 680 FormData form1; |
682 webkit::forms::FormField field; | 681 FormFieldData field; |
683 autofill_test::CreateTestFormField( | 682 autofill_test::CreateTestFormField( |
684 "First name:", "first_name", "George", "text", &field); | 683 "First name:", "first_name", "George", "text", &field); |
685 form1.fields.push_back(field); | 684 form1.fields.push_back(field); |
686 autofill_test::CreateTestFormField( | 685 autofill_test::CreateTestFormField( |
687 "Last name:", "last_name", "Washington", "text", &field); | 686 "Last name:", "last_name", "Washington", "text", &field); |
688 form1.fields.push_back(field); | 687 form1.fields.push_back(field); |
689 autofill_test::CreateTestFormField( | 688 autofill_test::CreateTestFormField( |
690 "Email:", "email", "theprez@gmail.com", "text", &field); | 689 "Email:", "email", "theprez@gmail.com", "text", &field); |
691 form1.fields.push_back(field); | 690 form1.fields.push_back(field); |
692 autofill_test::CreateTestFormField( | 691 autofill_test::CreateTestFormField( |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
763 autofill_test::SetProfileInfo(&expected2, "John", NULL, | 762 autofill_test::SetProfileInfo(&expected2, "John", NULL, |
764 "Adams", "second@gmail.com", NULL, "22 Laussat St", NULL, | 763 "Adams", "second@gmail.com", NULL, "22 Laussat St", NULL, |
765 "San Francisco", "California", "94102", NULL, NULL); | 764 "San Francisco", "California", "94102", NULL, NULL); |
766 ASSERT_EQ(2U, results2.size()); | 765 ASSERT_EQ(2U, results2.size()); |
767 EXPECT_EQ(0, expected.Compare(*results2[0])); | 766 EXPECT_EQ(0, expected.Compare(*results2[0])); |
768 EXPECT_EQ(0, expected2.Compare(*results2[1])); | 767 EXPECT_EQ(0, expected2.Compare(*results2[1])); |
769 } | 768 } |
770 | 769 |
771 TEST_F(PersonalDataManagerTest, AggregateTwoProfilesWithMultiValue) { | 770 TEST_F(PersonalDataManagerTest, AggregateTwoProfilesWithMultiValue) { |
772 FormData form1; | 771 FormData form1; |
773 webkit::forms::FormField field; | 772 FormFieldData field; |
774 autofill_test::CreateTestFormField( | 773 autofill_test::CreateTestFormField( |
775 "First name:", "first_name", "George", "text", &field); | 774 "First name:", "first_name", "George", "text", &field); |
776 form1.fields.push_back(field); | 775 form1.fields.push_back(field); |
777 autofill_test::CreateTestFormField( | 776 autofill_test::CreateTestFormField( |
778 "Last name:", "last_name", "Washington", "text", &field); | 777 "Last name:", "last_name", "Washington", "text", &field); |
779 form1.fields.push_back(field); | 778 form1.fields.push_back(field); |
780 autofill_test::CreateTestFormField( | 779 autofill_test::CreateTestFormField( |
781 "Email:", "email", "theprez@gmail.com", "text", &field); | 780 "Email:", "email", "theprez@gmail.com", "text", &field); |
782 form1.fields.push_back(field); | 781 form1.fields.push_back(field); |
783 autofill_test::CreateTestFormField( | 782 autofill_test::CreateTestFormField( |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
858 expected.GetMultiInfo(EMAIL_ADDRESS, &values); | 857 expected.GetMultiInfo(EMAIL_ADDRESS, &values); |
859 values.push_back(ASCIIToUTF16("second@gmail.com")); | 858 values.push_back(ASCIIToUTF16("second@gmail.com")); |
860 expected.SetMultiInfo(EMAIL_ADDRESS, values); | 859 expected.SetMultiInfo(EMAIL_ADDRESS, values); |
861 | 860 |
862 ASSERT_EQ(1U, results2.size()); | 861 ASSERT_EQ(1U, results2.size()); |
863 EXPECT_EQ(0, expected.Compare(*results2[0])); | 862 EXPECT_EQ(0, expected.Compare(*results2[0])); |
864 } | 863 } |
865 | 864 |
866 TEST_F(PersonalDataManagerTest, AggregateSameProfileWithConflict) { | 865 TEST_F(PersonalDataManagerTest, AggregateSameProfileWithConflict) { |
867 FormData form1; | 866 FormData form1; |
868 webkit::forms::FormField field; | 867 FormFieldData field; |
869 autofill_test::CreateTestFormField( | 868 autofill_test::CreateTestFormField( |
870 "First name:", "first_name", "George", "text", &field); | 869 "First name:", "first_name", "George", "text", &field); |
871 form1.fields.push_back(field); | 870 form1.fields.push_back(field); |
872 autofill_test::CreateTestFormField( | 871 autofill_test::CreateTestFormField( |
873 "Last name:", "last_name", "Washington", "text", &field); | 872 "Last name:", "last_name", "Washington", "text", &field); |
874 form1.fields.push_back(field); | 873 form1.fields.push_back(field); |
875 autofill_test::CreateTestFormField( | 874 autofill_test::CreateTestFormField( |
876 "Address:", "address", "1600 Pennsylvania Avenue", "text", &field); | 875 "Address:", "address", "1600 Pennsylvania Avenue", "text", &field); |
877 form1.fields.push_back(field); | 876 form1.fields.push_back(field); |
878 autofill_test::CreateTestFormField( | 877 autofill_test::CreateTestFormField( |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
968 expected.GetMultiInfo(PHONE_HOME_WHOLE_NUMBER, &values); | 967 expected.GetMultiInfo(PHONE_HOME_WHOLE_NUMBER, &values); |
969 values.push_back(ASCIIToUTF16("6502231234")); | 968 values.push_back(ASCIIToUTF16("6502231234")); |
970 expected.SetMultiInfo(PHONE_HOME_WHOLE_NUMBER, values); | 969 expected.SetMultiInfo(PHONE_HOME_WHOLE_NUMBER, values); |
971 expected.SetInfo(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("United States")); | 970 expected.SetInfo(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("United States")); |
972 ASSERT_EQ(1U, results2.size()); | 971 ASSERT_EQ(1U, results2.size()); |
973 EXPECT_EQ(0, expected.Compare(*results2[0])); | 972 EXPECT_EQ(0, expected.Compare(*results2[0])); |
974 } | 973 } |
975 | 974 |
976 TEST_F(PersonalDataManagerTest, AggregateProfileWithMissingInfoInOld) { | 975 TEST_F(PersonalDataManagerTest, AggregateProfileWithMissingInfoInOld) { |
977 FormData form1; | 976 FormData form1; |
978 webkit::forms::FormField field; | 977 FormFieldData field; |
979 autofill_test::CreateTestFormField( | 978 autofill_test::CreateTestFormField( |
980 "First name:", "first_name", "George", "text", &field); | 979 "First name:", "first_name", "George", "text", &field); |
981 form1.fields.push_back(field); | 980 form1.fields.push_back(field); |
982 autofill_test::CreateTestFormField( | 981 autofill_test::CreateTestFormField( |
983 "Last name:", "last_name", "Washington", "text", &field); | 982 "Last name:", "last_name", "Washington", "text", &field); |
984 form1.fields.push_back(field); | 983 form1.fields.push_back(field); |
985 autofill_test::CreateTestFormField( | 984 autofill_test::CreateTestFormField( |
986 "Address Line 1:", "address", "190 High Street", "text", &field); | 985 "Address Line 1:", "address", "190 High Street", "text", &field); |
987 form1.fields.push_back(field); | 986 form1.fields.push_back(field); |
988 autofill_test::CreateTestFormField( | 987 autofill_test::CreateTestFormField( |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1055 AutofillProfile expected2; | 1054 AutofillProfile expected2; |
1056 autofill_test::SetProfileInfo(&expected2, "George", NULL, | 1055 autofill_test::SetProfileInfo(&expected2, "George", NULL, |
1057 "Washington", "theprez@gmail.com", NULL, "190 High Street", NULL, | 1056 "Washington", "theprez@gmail.com", NULL, "190 High Street", NULL, |
1058 "Philadelphia", "Pennsylvania", "19106", NULL, NULL); | 1057 "Philadelphia", "Pennsylvania", "19106", NULL, NULL); |
1059 ASSERT_EQ(1U, results2.size()); | 1058 ASSERT_EQ(1U, results2.size()); |
1060 EXPECT_EQ(0, expected2.Compare(*results2[0])); | 1059 EXPECT_EQ(0, expected2.Compare(*results2[0])); |
1061 } | 1060 } |
1062 | 1061 |
1063 TEST_F(PersonalDataManagerTest, AggregateProfileWithMissingInfoInNew) { | 1062 TEST_F(PersonalDataManagerTest, AggregateProfileWithMissingInfoInNew) { |
1064 FormData form1; | 1063 FormData form1; |
1065 webkit::forms::FormField field; | 1064 FormFieldData field; |
1066 autofill_test::CreateTestFormField( | 1065 autofill_test::CreateTestFormField( |
1067 "First name:", "first_name", "George", "text", &field); | 1066 "First name:", "first_name", "George", "text", &field); |
1068 form1.fields.push_back(field); | 1067 form1.fields.push_back(field); |
1069 autofill_test::CreateTestFormField( | 1068 autofill_test::CreateTestFormField( |
1070 "Last name:", "last_name", "Washington", "text", &field); | 1069 "Last name:", "last_name", "Washington", "text", &field); |
1071 form1.fields.push_back(field); | 1070 form1.fields.push_back(field); |
1072 autofill_test::CreateTestFormField( | 1071 autofill_test::CreateTestFormField( |
1073 "Company:", "company", "Government", "text", &field); | 1072 "Company:", "company", "Government", "text", &field); |
1074 form1.fields.push_back(field); | 1073 form1.fields.push_back(field); |
1075 autofill_test::CreateTestFormField( | 1074 autofill_test::CreateTestFormField( |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1146 | 1145 |
1147 const std::vector<AutofillProfile*>& results2 = personal_data_->profiles(); | 1146 const std::vector<AutofillProfile*>& results2 = personal_data_->profiles(); |
1148 | 1147 |
1149 // Expect no change. | 1148 // Expect no change. |
1150 ASSERT_EQ(1U, results2.size()); | 1149 ASSERT_EQ(1U, results2.size()); |
1151 EXPECT_EQ(0, expected.Compare(*results2[0])); | 1150 EXPECT_EQ(0, expected.Compare(*results2[0])); |
1152 } | 1151 } |
1153 | 1152 |
1154 TEST_F(PersonalDataManagerTest, AggregateProfileWithInsufficientAddress) { | 1153 TEST_F(PersonalDataManagerTest, AggregateProfileWithInsufficientAddress) { |
1155 FormData form1; | 1154 FormData form1; |
1156 webkit::forms::FormField field; | 1155 FormFieldData field; |
1157 autofill_test::CreateTestFormField( | 1156 autofill_test::CreateTestFormField( |
1158 "First name:", "first_name", "George", "text", &field); | 1157 "First name:", "first_name", "George", "text", &field); |
1159 form1.fields.push_back(field); | 1158 form1.fields.push_back(field); |
1160 autofill_test::CreateTestFormField( | 1159 autofill_test::CreateTestFormField( |
1161 "Last name:", "last_name", "Washington", "text", &field); | 1160 "Last name:", "last_name", "Washington", "text", &field); |
1162 form1.fields.push_back(field); | 1161 form1.fields.push_back(field); |
1163 autofill_test::CreateTestFormField( | 1162 autofill_test::CreateTestFormField( |
1164 "Company:", "company", "Government", "text", &field); | 1163 "Company:", "company", "Government", "text", &field); |
1165 form1.fields.push_back(field); | 1164 form1.fields.push_back(field); |
1166 autofill_test::CreateTestFormField( | 1165 autofill_test::CreateTestFormField( |
(...skipping 29 matching lines...) Expand all Loading... |
1196 "Tester", "Frederick", "McAddressBookTesterson", | 1195 "Tester", "Frederick", "McAddressBookTesterson", |
1197 "tester@example.com", "Acme Inc.", "1 Main", "Apt A", "San Francisco", | 1196 "tester@example.com", "Acme Inc.", "1 Main", "Apt A", "San Francisco", |
1198 "CA", "94102", "USA", "1.415.888.9999"); | 1197 "CA", "94102", "USA", "1.415.888.9999"); |
1199 ScopedVector<AutofillProfile>& auxiliary_profiles = | 1198 ScopedVector<AutofillProfile>& auxiliary_profiles = |
1200 personal_data_->auxiliary_profiles_; | 1199 personal_data_->auxiliary_profiles_; |
1201 auxiliary_profiles.push_back(auxiliary_profile); | 1200 auxiliary_profiles.push_back(auxiliary_profile); |
1202 | 1201 |
1203 // Simulate a form submission with a subset of the info. | 1202 // Simulate a form submission with a subset of the info. |
1204 // Note that the phone number format is different from the saved format. | 1203 // Note that the phone number format is different from the saved format. |
1205 FormData form; | 1204 FormData form; |
1206 webkit::forms::FormField field; | 1205 FormFieldData field; |
1207 autofill_test::CreateTestFormField( | 1206 autofill_test::CreateTestFormField( |
1208 "First name:", "first_name", "Tester", "text", &field); | 1207 "First name:", "first_name", "Tester", "text", &field); |
1209 form.fields.push_back(field); | 1208 form.fields.push_back(field); |
1210 autofill_test::CreateTestFormField( | 1209 autofill_test::CreateTestFormField( |
1211 "Last name:", "last_name", "McAddressBookTesterson", "text", &field); | 1210 "Last name:", "last_name", "McAddressBookTesterson", "text", &field); |
1212 form.fields.push_back(field); | 1211 form.fields.push_back(field); |
1213 autofill_test::CreateTestFormField( | 1212 autofill_test::CreateTestFormField( |
1214 "Email:", "email", "tester@example.com", "text", &field); | 1213 "Email:", "email", "tester@example.com", "text", &field); |
1215 form.fields.push_back(field); | 1214 form.fields.push_back(field); |
1216 autofill_test::CreateTestFormField( | 1215 autofill_test::CreateTestFormField( |
(...skipping 26 matching lines...) Expand all Loading... |
1243 personal_data_->web_profiles(); | 1242 personal_data_->web_profiles(); |
1244 EXPECT_EQ(0U, web_profiles.size()); | 1243 EXPECT_EQ(0U, web_profiles.size()); |
1245 ASSERT_EQ(1U, auxiliary_profiles.size()); | 1244 ASSERT_EQ(1U, auxiliary_profiles.size()); |
1246 EXPECT_EQ(0, auxiliary_profile->Compare(*auxiliary_profiles[0])); | 1245 EXPECT_EQ(0, auxiliary_profile->Compare(*auxiliary_profiles[0])); |
1247 } | 1246 } |
1248 | 1247 |
1249 TEST_F(PersonalDataManagerTest, AggregateTwoDifferentCreditCards) { | 1248 TEST_F(PersonalDataManagerTest, AggregateTwoDifferentCreditCards) { |
1250 FormData form1; | 1249 FormData form1; |
1251 | 1250 |
1252 // Start with a single valid credit card form. | 1251 // Start with a single valid credit card form. |
1253 webkit::forms::FormField field; | 1252 FormFieldData field; |
1254 autofill_test::CreateTestFormField( | 1253 autofill_test::CreateTestFormField( |
1255 "Name on card:", "name_on_card", "Biggie Smalls", "text", &field); | 1254 "Name on card:", "name_on_card", "Biggie Smalls", "text", &field); |
1256 form1.fields.push_back(field); | 1255 form1.fields.push_back(field); |
1257 autofill_test::CreateTestFormField( | 1256 autofill_test::CreateTestFormField( |
1258 "Card Number:", "card_number", "4111-1111-1111-1111", "text", &field); | 1257 "Card Number:", "card_number", "4111-1111-1111-1111", "text", &field); |
1259 form1.fields.push_back(field); | 1258 form1.fields.push_back(field); |
1260 autofill_test::CreateTestFormField( | 1259 autofill_test::CreateTestFormField( |
1261 "Exp Month:", "exp_month", "01", "text", &field); | 1260 "Exp Month:", "exp_month", "01", "text", &field); |
1262 form1.fields.push_back(field); | 1261 form1.fields.push_back(field); |
1263 autofill_test::CreateTestFormField( | 1262 autofill_test::CreateTestFormField( |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1319 const std::vector<CreditCard*>& results2 = personal_data_->credit_cards(); | 1318 const std::vector<CreditCard*>& results2 = personal_data_->credit_cards(); |
1320 ASSERT_EQ(2U, results2.size()); | 1319 ASSERT_EQ(2U, results2.size()); |
1321 EXPECT_EQ(0, expected.Compare(*results2[0])); | 1320 EXPECT_EQ(0, expected.Compare(*results2[0])); |
1322 EXPECT_EQ(0, expected2.Compare(*results2[1])); | 1321 EXPECT_EQ(0, expected2.Compare(*results2[1])); |
1323 } | 1322 } |
1324 | 1323 |
1325 TEST_F(PersonalDataManagerTest, AggregateInvalidCreditCard) { | 1324 TEST_F(PersonalDataManagerTest, AggregateInvalidCreditCard) { |
1326 FormData form1; | 1325 FormData form1; |
1327 | 1326 |
1328 // Start with a single valid credit card form. | 1327 // Start with a single valid credit card form. |
1329 webkit::forms::FormField field; | 1328 FormFieldData field; |
1330 autofill_test::CreateTestFormField( | 1329 autofill_test::CreateTestFormField( |
1331 "Name on card:", "name_on_card", "Biggie Smalls", "text", &field); | 1330 "Name on card:", "name_on_card", "Biggie Smalls", "text", &field); |
1332 form1.fields.push_back(field); | 1331 form1.fields.push_back(field); |
1333 autofill_test::CreateTestFormField( | 1332 autofill_test::CreateTestFormField( |
1334 "Card Number:", "card_number", "4111-1111-1111-1111", "text", &field); | 1333 "Card Number:", "card_number", "4111-1111-1111-1111", "text", &field); |
1335 form1.fields.push_back(field); | 1334 form1.fields.push_back(field); |
1336 autofill_test::CreateTestFormField( | 1335 autofill_test::CreateTestFormField( |
1337 "Exp Month:", "exp_month", "01", "text", &field); | 1336 "Exp Month:", "exp_month", "01", "text", &field); |
1338 form1.fields.push_back(field); | 1337 form1.fields.push_back(field); |
1339 autofill_test::CreateTestFormField( | 1338 autofill_test::CreateTestFormField( |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1386 | 1385 |
1387 const std::vector<CreditCard*>& results2 = personal_data_->credit_cards(); | 1386 const std::vector<CreditCard*>& results2 = personal_data_->credit_cards(); |
1388 ASSERT_EQ(1U, results2.size()); | 1387 ASSERT_EQ(1U, results2.size()); |
1389 EXPECT_EQ(0, expected.Compare(*results2[0])); | 1388 EXPECT_EQ(0, expected.Compare(*results2[0])); |
1390 } | 1389 } |
1391 | 1390 |
1392 TEST_F(PersonalDataManagerTest, AggregateSameCreditCardWithConflict) { | 1391 TEST_F(PersonalDataManagerTest, AggregateSameCreditCardWithConflict) { |
1393 FormData form1; | 1392 FormData form1; |
1394 | 1393 |
1395 // Start with a single valid credit card form. | 1394 // Start with a single valid credit card form. |
1396 webkit::forms::FormField field; | 1395 FormFieldData field; |
1397 autofill_test::CreateTestFormField( | 1396 autofill_test::CreateTestFormField( |
1398 "Name on card:", "name_on_card", "Biggie Smalls", "text", &field); | 1397 "Name on card:", "name_on_card", "Biggie Smalls", "text", &field); |
1399 form1.fields.push_back(field); | 1398 form1.fields.push_back(field); |
1400 autofill_test::CreateTestFormField( | 1399 autofill_test::CreateTestFormField( |
1401 "Card Number:", "card_number", "4111-1111-1111-1111", "text", &field); | 1400 "Card Number:", "card_number", "4111-1111-1111-1111", "text", &field); |
1402 form1.fields.push_back(field); | 1401 form1.fields.push_back(field); |
1403 autofill_test::CreateTestFormField( | 1402 autofill_test::CreateTestFormField( |
1404 "Exp Month:", "exp_month", "01", "text", &field); | 1403 "Exp Month:", "exp_month", "01", "text", &field); |
1405 form1.fields.push_back(field); | 1404 form1.fields.push_back(field); |
1406 autofill_test::CreateTestFormField( | 1405 autofill_test::CreateTestFormField( |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1462 "Biggie Smalls", "4111111111111111", "01", "2012"); | 1461 "Biggie Smalls", "4111111111111111", "01", "2012"); |
1463 const std::vector<CreditCard*>& results2 = personal_data_->credit_cards(); | 1462 const std::vector<CreditCard*>& results2 = personal_data_->credit_cards(); |
1464 ASSERT_EQ(1U, results2.size()); | 1463 ASSERT_EQ(1U, results2.size()); |
1465 EXPECT_EQ(0, expected2.Compare(*results2[0])); | 1464 EXPECT_EQ(0, expected2.Compare(*results2[0])); |
1466 } | 1465 } |
1467 | 1466 |
1468 TEST_F(PersonalDataManagerTest, AggregateEmptyCreditCardWithConflict) { | 1467 TEST_F(PersonalDataManagerTest, AggregateEmptyCreditCardWithConflict) { |
1469 FormData form1; | 1468 FormData form1; |
1470 | 1469 |
1471 // Start with a single valid credit card form. | 1470 // Start with a single valid credit card form. |
1472 webkit::forms::FormField field; | 1471 FormFieldData field; |
1473 autofill_test::CreateTestFormField( | 1472 autofill_test::CreateTestFormField( |
1474 "Name on card:", "name_on_card", "Biggie Smalls", "text", &field); | 1473 "Name on card:", "name_on_card", "Biggie Smalls", "text", &field); |
1475 form1.fields.push_back(field); | 1474 form1.fields.push_back(field); |
1476 autofill_test::CreateTestFormField( | 1475 autofill_test::CreateTestFormField( |
1477 "Card Number:", "card_number", "4111-1111-1111-1111", "text", &field); | 1476 "Card Number:", "card_number", "4111-1111-1111-1111", "text", &field); |
1478 form1.fields.push_back(field); | 1477 form1.fields.push_back(field); |
1479 autofill_test::CreateTestFormField( | 1478 autofill_test::CreateTestFormField( |
1480 "Exp Month:", "exp_month", "01", "text", &field); | 1479 "Exp Month:", "exp_month", "01", "text", &field); |
1481 form1.fields.push_back(field); | 1480 form1.fields.push_back(field); |
1482 autofill_test::CreateTestFormField( | 1481 autofill_test::CreateTestFormField( |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1530 "Biggie Smalls", "4111111111111111", "01", "2011"); | 1529 "Biggie Smalls", "4111111111111111", "01", "2011"); |
1531 const std::vector<CreditCard*>& results2 = personal_data_->credit_cards(); | 1530 const std::vector<CreditCard*>& results2 = personal_data_->credit_cards(); |
1532 ASSERT_EQ(1U, results2.size()); | 1531 ASSERT_EQ(1U, results2.size()); |
1533 EXPECT_EQ(0, expected2.Compare(*results2[0])); | 1532 EXPECT_EQ(0, expected2.Compare(*results2[0])); |
1534 } | 1533 } |
1535 | 1534 |
1536 TEST_F(PersonalDataManagerTest, AggregateCreditCardWithMissingInfoInNew) { | 1535 TEST_F(PersonalDataManagerTest, AggregateCreditCardWithMissingInfoInNew) { |
1537 FormData form1; | 1536 FormData form1; |
1538 | 1537 |
1539 // Start with a single valid credit card form. | 1538 // Start with a single valid credit card form. |
1540 webkit::forms::FormField field; | 1539 FormFieldData field; |
1541 autofill_test::CreateTestFormField( | 1540 autofill_test::CreateTestFormField( |
1542 "Name on card:", "name_on_card", "Biggie Smalls", "text", &field); | 1541 "Name on card:", "name_on_card", "Biggie Smalls", "text", &field); |
1543 form1.fields.push_back(field); | 1542 form1.fields.push_back(field); |
1544 autofill_test::CreateTestFormField( | 1543 autofill_test::CreateTestFormField( |
1545 "Card Number:", "card_number", "4111-1111-1111-1111", "text", &field); | 1544 "Card Number:", "card_number", "4111-1111-1111-1111", "text", &field); |
1546 form1.fields.push_back(field); | 1545 form1.fields.push_back(field); |
1547 autofill_test::CreateTestFormField( | 1546 autofill_test::CreateTestFormField( |
1548 "Exp Month:", "exp_month", "01", "text", &field); | 1547 "Exp Month:", "exp_month", "01", "text", &field); |
1549 form1.fields.push_back(field); | 1548 form1.fields.push_back(field); |
1550 autofill_test::CreateTestFormField( | 1549 autofill_test::CreateTestFormField( |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1646 MessageLoop::current()->Run(); | 1645 MessageLoop::current()->Run(); |
1647 | 1646 |
1648 const std::vector<CreditCard*>& results1 = personal_data_->credit_cards(); | 1647 const std::vector<CreditCard*>& results1 = personal_data_->credit_cards(); |
1649 ASSERT_EQ(1U, results1.size()); | 1648 ASSERT_EQ(1U, results1.size()); |
1650 EXPECT_EQ(saved_credit_card, *results1[0]); | 1649 EXPECT_EQ(saved_credit_card, *results1[0]); |
1651 | 1650 |
1652 | 1651 |
1653 // Add a second different valid credit card where the year is different but | 1652 // Add a second different valid credit card where the year is different but |
1654 // the credit card number matches. | 1653 // the credit card number matches. |
1655 FormData form; | 1654 FormData form; |
1656 webkit::forms::FormField field; | 1655 FormFieldData field; |
1657 autofill_test::CreateTestFormField( | 1656 autofill_test::CreateTestFormField( |
1658 "Name on card:", "name_on_card", "Biggie Smalls", "text", &field); | 1657 "Name on card:", "name_on_card", "Biggie Smalls", "text", &field); |
1659 form.fields.push_back(field); | 1658 form.fields.push_back(field); |
1660 autofill_test::CreateTestFormField( | 1659 autofill_test::CreateTestFormField( |
1661 "Card Number:", "card_number", "4111-1111-1111-1111", "text", &field); | 1660 "Card Number:", "card_number", "4111-1111-1111-1111", "text", &field); |
1662 form.fields.push_back(field); | 1661 form.fields.push_back(field); |
1663 autofill_test::CreateTestFormField( | 1662 autofill_test::CreateTestFormField( |
1664 "Exp Month:", "exp_month", "01", "text", &field); | 1663 "Exp Month:", "exp_month", "01", "text", &field); |
1665 form.fields.push_back(field); | 1664 form.fields.push_back(field); |
1666 autofill_test::CreateTestFormField( | 1665 autofill_test::CreateTestFormField( |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1703 EXPECT_CALL(personal_data_observer_, | 1702 EXPECT_CALL(personal_data_observer_, |
1704 OnPersonalDataChanged()).WillOnce(QuitUIMessageLoop()); | 1703 OnPersonalDataChanged()).WillOnce(QuitUIMessageLoop()); |
1705 MessageLoop::current()->Run(); | 1704 MessageLoop::current()->Run(); |
1706 | 1705 |
1707 const std::vector<CreditCard*>& results1 = personal_data_->credit_cards(); | 1706 const std::vector<CreditCard*>& results1 = personal_data_->credit_cards(); |
1708 ASSERT_EQ(1U, results1.size()); | 1707 ASSERT_EQ(1U, results1.size()); |
1709 EXPECT_EQ(0, saved_credit_card.Compare(*results1[0])); | 1708 EXPECT_EQ(0, saved_credit_card.Compare(*results1[0])); |
1710 | 1709 |
1711 // Import the same card info, but with different separators in the number. | 1710 // Import the same card info, but with different separators in the number. |
1712 FormData form; | 1711 FormData form; |
1713 webkit::forms::FormField field; | 1712 FormFieldData field; |
1714 autofill_test::CreateTestFormField( | 1713 autofill_test::CreateTestFormField( |
1715 "Name on card:", "name_on_card", "Biggie Smalls", "text", &field); | 1714 "Name on card:", "name_on_card", "Biggie Smalls", "text", &field); |
1716 form.fields.push_back(field); | 1715 form.fields.push_back(field); |
1717 autofill_test::CreateTestFormField( | 1716 autofill_test::CreateTestFormField( |
1718 "Card Number:", "card_number", "4111-1111-1111-1111", "text", &field); | 1717 "Card Number:", "card_number", "4111-1111-1111-1111", "text", &field); |
1719 form.fields.push_back(field); | 1718 form.fields.push_back(field); |
1720 autofill_test::CreateTestFormField( | 1719 autofill_test::CreateTestFormField( |
1721 "Exp Month:", "exp_month", "01", "text", &field); | 1720 "Exp Month:", "exp_month", "01", "text", &field); |
1722 form.fields.push_back(field); | 1721 form.fields.push_back(field); |
1723 autofill_test::CreateTestFormField( | 1722 autofill_test::CreateTestFormField( |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1857 EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_NUMBER)); | 1856 EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_NUMBER)); |
1858 EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_EXP_MONTH)); | 1857 EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_EXP_MONTH)); |
1859 EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_EXP_2_DIGIT_YEAR)); | 1858 EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_EXP_2_DIGIT_YEAR)); |
1860 EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_EXP_4_DIGIT_YEAR)); | 1859 EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_EXP_4_DIGIT_YEAR)); |
1861 EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR)); | 1860 EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR)); |
1862 EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR)); | 1861 EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR)); |
1863 } | 1862 } |
1864 | 1863 |
1865 TEST_F(PersonalDataManagerTest, CaseInsensitiveMultiValueAggregation) { | 1864 TEST_F(PersonalDataManagerTest, CaseInsensitiveMultiValueAggregation) { |
1866 FormData form1; | 1865 FormData form1; |
1867 webkit::forms::FormField field; | 1866 FormFieldData field; |
1868 autofill_test::CreateTestFormField( | 1867 autofill_test::CreateTestFormField( |
1869 "First name:", "first_name", "George", "text", &field); | 1868 "First name:", "first_name", "George", "text", &field); |
1870 form1.fields.push_back(field); | 1869 form1.fields.push_back(field); |
1871 autofill_test::CreateTestFormField( | 1870 autofill_test::CreateTestFormField( |
1872 "Last name:", "last_name", "Washington", "text", &field); | 1871 "Last name:", "last_name", "Washington", "text", &field); |
1873 form1.fields.push_back(field); | 1872 form1.fields.push_back(field); |
1874 autofill_test::CreateTestFormField( | 1873 autofill_test::CreateTestFormField( |
1875 "Email:", "email", "theprez@gmail.com", "text", &field); | 1874 "Email:", "email", "theprez@gmail.com", "text", &field); |
1876 form1.fields.push_back(field); | 1875 form1.fields.push_back(field); |
1877 autofill_test::CreateTestFormField( | 1876 autofill_test::CreateTestFormField( |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1952 | 1951 |
1953 // Modify expected to include multi-valued fields. | 1952 // Modify expected to include multi-valued fields. |
1954 std::vector<string16> values; | 1953 std::vector<string16> values; |
1955 expected.GetMultiInfo(PHONE_HOME_CITY_AND_NUMBER, &values); | 1954 expected.GetMultiInfo(PHONE_HOME_CITY_AND_NUMBER, &values); |
1956 values.push_back(ASCIIToUTF16("214-555-1234")); | 1955 values.push_back(ASCIIToUTF16("214-555-1234")); |
1957 expected.SetMultiInfo(PHONE_HOME_CITY_AND_NUMBER, values); | 1956 expected.SetMultiInfo(PHONE_HOME_CITY_AND_NUMBER, values); |
1958 | 1957 |
1959 ASSERT_EQ(1U, results2.size()); | 1958 ASSERT_EQ(1U, results2.size()); |
1960 EXPECT_EQ(0, expected.Compare(*results2[0])); | 1959 EXPECT_EQ(0, expected.Compare(*results2[0])); |
1961 } | 1960 } |
OLD | NEW |