| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/file_util.h" | 7 #include "base/file_util.h" |
| 8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
| 9 #include "base/string_number_conversions.h" | 9 #include "base/string_number_conversions.h" |
| 10 #include "base/time.h" | 10 #include "base/time.h" |
| (...skipping 541 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 552 home_profile.SetInfo(NAME_LAST, ASCIIToUTF16("Smith")); | 552 home_profile.SetInfo(NAME_LAST, ASCIIToUTF16("Smith")); |
| 553 home_profile.SetInfo(EMAIL_ADDRESS, ASCIIToUTF16("js@smith.xyz")); | 553 home_profile.SetInfo(EMAIL_ADDRESS, ASCIIToUTF16("js@smith.xyz")); |
| 554 home_profile.SetInfo(COMPANY_NAME, ASCIIToUTF16("Google")); | 554 home_profile.SetInfo(COMPANY_NAME, ASCIIToUTF16("Google")); |
| 555 home_profile.SetInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("1234 Apple Way")); | 555 home_profile.SetInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("1234 Apple Way")); |
| 556 home_profile.SetInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("unit 5")); | 556 home_profile.SetInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("unit 5")); |
| 557 home_profile.SetInfo(ADDRESS_HOME_CITY, ASCIIToUTF16("Los Angeles")); | 557 home_profile.SetInfo(ADDRESS_HOME_CITY, ASCIIToUTF16("Los Angeles")); |
| 558 home_profile.SetInfo(ADDRESS_HOME_STATE, ASCIIToUTF16("CA")); | 558 home_profile.SetInfo(ADDRESS_HOME_STATE, ASCIIToUTF16("CA")); |
| 559 home_profile.SetInfo(ADDRESS_HOME_ZIP, ASCIIToUTF16("90025")); | 559 home_profile.SetInfo(ADDRESS_HOME_ZIP, ASCIIToUTF16("90025")); |
| 560 home_profile.SetInfo(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("US")); | 560 home_profile.SetInfo(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("US")); |
| 561 home_profile.SetInfo(PHONE_HOME_WHOLE_NUMBER, ASCIIToUTF16("18181234567")); | 561 home_profile.SetInfo(PHONE_HOME_WHOLE_NUMBER, ASCIIToUTF16("18181234567")); |
| 562 home_profile.SetInfo(PHONE_FAX_WHOLE_NUMBER, ASCIIToUTF16("1915243678")); | |
| 563 | 562 |
| 564 Time pre_creation_time = Time::Now(); | 563 Time pre_creation_time = Time::Now(); |
| 565 EXPECT_TRUE(db.GetAutofillTable()->AddAutofillProfile(home_profile)); | 564 EXPECT_TRUE(db.GetAutofillTable()->AddAutofillProfile(home_profile)); |
| 566 Time post_creation_time = Time::Now(); | 565 Time post_creation_time = Time::Now(); |
| 567 | 566 |
| 568 // Get the 'Home' profile. | 567 // Get the 'Home' profile. |
| 569 AutofillProfile* db_profile; | 568 AutofillProfile* db_profile; |
| 570 ASSERT_TRUE(db.GetAutofillTable()->GetAutofillProfile( | 569 ASSERT_TRUE(db.GetAutofillTable()->GetAutofillProfile( |
| 571 home_profile.guid(), &db_profile)); | 570 home_profile.guid(), &db_profile)); |
| 572 EXPECT_EQ(home_profile, *db_profile); | 571 EXPECT_EQ(home_profile, *db_profile); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 633 billing_profile.SetInfo(NAME_FIRST, ASCIIToUTF16("Joplin")); | 632 billing_profile.SetInfo(NAME_FIRST, ASCIIToUTF16("Joplin")); |
| 634 billing_profile.SetInfo(EMAIL_ADDRESS, ASCIIToUTF16("jane@singer.com")); | 633 billing_profile.SetInfo(EMAIL_ADDRESS, ASCIIToUTF16("jane@singer.com")); |
| 635 billing_profile.SetInfo(COMPANY_NAME, ASCIIToUTF16("Indy")); | 634 billing_profile.SetInfo(COMPANY_NAME, ASCIIToUTF16("Indy")); |
| 636 billing_profile.SetInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("Open Road")); | 635 billing_profile.SetInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("Open Road")); |
| 637 billing_profile.SetInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Route 66")); | 636 billing_profile.SetInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Route 66")); |
| 638 billing_profile.SetInfo(ADDRESS_HOME_CITY, ASCIIToUTF16("NFA")); | 637 billing_profile.SetInfo(ADDRESS_HOME_CITY, ASCIIToUTF16("NFA")); |
| 639 billing_profile.SetInfo(ADDRESS_HOME_STATE, ASCIIToUTF16("NY")); | 638 billing_profile.SetInfo(ADDRESS_HOME_STATE, ASCIIToUTF16("NY")); |
| 640 billing_profile.SetInfo(ADDRESS_HOME_ZIP, ASCIIToUTF16("10011")); | 639 billing_profile.SetInfo(ADDRESS_HOME_ZIP, ASCIIToUTF16("10011")); |
| 641 billing_profile.SetInfo(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("United States")); | 640 billing_profile.SetInfo(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("United States")); |
| 642 billing_profile.SetInfo(PHONE_HOME_WHOLE_NUMBER, ASCIIToUTF16("18181230000")); | 641 billing_profile.SetInfo(PHONE_HOME_WHOLE_NUMBER, ASCIIToUTF16("18181230000")); |
| 643 billing_profile.SetInfo(PHONE_FAX_WHOLE_NUMBER, ASCIIToUTF16("1915240000")); | |
| 644 Time pre_modification_time_2 = Time::Now(); | 642 Time pre_modification_time_2 = Time::Now(); |
| 645 EXPECT_TRUE(db.GetAutofillTable()->UpdateAutofillProfileMulti( | 643 EXPECT_TRUE(db.GetAutofillTable()->UpdateAutofillProfileMulti( |
| 646 billing_profile)); | 644 billing_profile)); |
| 647 Time post_modification_time_2 = Time::Now(); | 645 Time post_modification_time_2 = Time::Now(); |
| 648 ASSERT_TRUE(db.GetAutofillTable()->GetAutofillProfile( | 646 ASSERT_TRUE(db.GetAutofillTable()->GetAutofillProfile( |
| 649 billing_profile.guid(), &db_profile)); | 647 billing_profile.guid(), &db_profile)); |
| 650 EXPECT_EQ(billing_profile, *db_profile); | 648 EXPECT_EQ(billing_profile, *db_profile); |
| 651 sql::Statement s_billing_updated_2(db.GetSQLConnection()->GetUniqueStatement( | 649 sql::Statement s_billing_updated_2(db.GetSQLConnection()->GetUniqueStatement( |
| 652 "SELECT date_modified FROM autofill_profiles WHERE guid=?")); | 650 "SELECT date_modified FROM autofill_profiles WHERE guid=?")); |
| 653 s_billing_updated_2.BindString(0, billing_profile.guid()); | 651 s_billing_updated_2.BindString(0, billing_profile.guid()); |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 821 set_values.clear(); | 819 set_values.clear(); |
| 822 p.SetMultiInfo(PHONE_HOME_WHOLE_NUMBER, set_values); | 820 p.SetMultiInfo(PHONE_HOME_WHOLE_NUMBER, set_values); |
| 823 EXPECT_TRUE(db.GetAutofillTable()->UpdateAutofillProfileMulti(p)); | 821 EXPECT_TRUE(db.GetAutofillTable()->UpdateAutofillProfileMulti(p)); |
| 824 ASSERT_TRUE(db.GetAutofillTable()->GetAutofillProfile(p.guid(), &db_profile)); | 822 ASSERT_TRUE(db.GetAutofillTable()->GetAutofillProfile(p.guid(), &db_profile)); |
| 825 EXPECT_EQ(p, *db_profile); | 823 EXPECT_EQ(p, *db_profile); |
| 826 EXPECT_EQ(0, p.CompareMulti(*db_profile)); | 824 EXPECT_EQ(0, p.CompareMulti(*db_profile)); |
| 827 EXPECT_EQ(string16(), db_profile->GetInfo(EMAIL_ADDRESS)); | 825 EXPECT_EQ(string16(), db_profile->GetInfo(EMAIL_ADDRESS)); |
| 828 delete db_profile; | 826 delete db_profile; |
| 829 } | 827 } |
| 830 | 828 |
| 831 TEST_F(AutofillTableTest, AutofillProfileMultiValueFax) { | |
| 832 WebDatabase db; | |
| 833 ASSERT_EQ(sql::INIT_OK, db.Init(file_)); | |
| 834 | |
| 835 AutofillProfile p; | |
| 836 const string16 kJohnDoe(ASCIIToUTF16("4151112222")); | |
| 837 const string16 kJohnPDoe(ASCIIToUTF16("4151113333")); | |
| 838 std::vector<string16> set_values; | |
| 839 set_values.push_back(kJohnDoe); | |
| 840 set_values.push_back(kJohnPDoe); | |
| 841 p.SetMultiInfo(PHONE_FAX_WHOLE_NUMBER, set_values); | |
| 842 | |
| 843 EXPECT_TRUE(db.GetAutofillTable()->AddAutofillProfile(p)); | |
| 844 | |
| 845 AutofillProfile* db_profile; | |
| 846 ASSERT_TRUE(db.GetAutofillTable()->GetAutofillProfile(p.guid(), &db_profile)); | |
| 847 EXPECT_EQ(p, *db_profile); | |
| 848 EXPECT_EQ(0, p.CompareMulti(*db_profile)); | |
| 849 delete db_profile; | |
| 850 | |
| 851 // Update the values. | |
| 852 const string16 kNoOne(ASCIIToUTF16("4151110000")); | |
| 853 set_values[1] = kNoOne; | |
| 854 p.SetMultiInfo(PHONE_FAX_WHOLE_NUMBER, set_values); | |
| 855 EXPECT_TRUE(db.GetAutofillTable()->UpdateAutofillProfileMulti(p)); | |
| 856 ASSERT_TRUE(db.GetAutofillTable()->GetAutofillProfile(p.guid(), &db_profile)); | |
| 857 EXPECT_EQ(p, *db_profile); | |
| 858 EXPECT_EQ(0, p.CompareMulti(*db_profile)); | |
| 859 delete db_profile; | |
| 860 | |
| 861 // Delete values. | |
| 862 set_values.clear(); | |
| 863 p.SetMultiInfo(PHONE_FAX_WHOLE_NUMBER, set_values); | |
| 864 EXPECT_TRUE(db.GetAutofillTable()->UpdateAutofillProfileMulti(p)); | |
| 865 ASSERT_TRUE(db.GetAutofillTable()->GetAutofillProfile(p.guid(), &db_profile)); | |
| 866 EXPECT_EQ(p, *db_profile); | |
| 867 EXPECT_EQ(0, p.CompareMulti(*db_profile)); | |
| 868 EXPECT_EQ(string16(), db_profile->GetInfo(EMAIL_ADDRESS)); | |
| 869 delete db_profile; | |
| 870 } | |
| 871 | |
| 872 TEST_F(AutofillTableTest, AutofillProfileTrash) { | 829 TEST_F(AutofillTableTest, AutofillProfileTrash) { |
| 873 WebDatabase db; | 830 WebDatabase db; |
| 874 | 831 |
| 875 ASSERT_EQ(sql::INIT_OK, db.Init(file_)); | 832 ASSERT_EQ(sql::INIT_OK, db.Init(file_)); |
| 876 | 833 |
| 877 std::vector<std::string> guids; | 834 std::vector<std::string> guids; |
| 878 db.GetAutofillTable()->GetAutofillProfilesInTrash(&guids); | 835 db.GetAutofillTable()->GetAutofillProfilesInTrash(&guids); |
| 879 EXPECT_TRUE(guids.empty()); | 836 EXPECT_TRUE(guids.empty()); |
| 880 | 837 |
| 881 ASSERT_TRUE(db.GetAutofillTable()->AddAutofillGUIDToTrash( | 838 ASSERT_TRUE(db.GetAutofillTable()->AddAutofillGUIDToTrash( |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1064 profile.SetInfo(NAME_LAST, ASCIIToUTF16("Smith")); | 1021 profile.SetInfo(NAME_LAST, ASCIIToUTF16("Smith")); |
| 1065 profile.SetInfo(EMAIL_ADDRESS, ASCIIToUTF16("js@example.com")); | 1022 profile.SetInfo(EMAIL_ADDRESS, ASCIIToUTF16("js@example.com")); |
| 1066 profile.SetInfo(COMPANY_NAME, ASCIIToUTF16("Google")); | 1023 profile.SetInfo(COMPANY_NAME, ASCIIToUTF16("Google")); |
| 1067 profile.SetInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("1234 Apple Way")); | 1024 profile.SetInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("1234 Apple Way")); |
| 1068 profile.SetInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("unit 5")); | 1025 profile.SetInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("unit 5")); |
| 1069 profile.SetInfo(ADDRESS_HOME_CITY, ASCIIToUTF16("Los Angeles")); | 1026 profile.SetInfo(ADDRESS_HOME_CITY, ASCIIToUTF16("Los Angeles")); |
| 1070 profile.SetInfo(ADDRESS_HOME_STATE, ASCIIToUTF16("CA")); | 1027 profile.SetInfo(ADDRESS_HOME_STATE, ASCIIToUTF16("CA")); |
| 1071 profile.SetInfo(ADDRESS_HOME_ZIP, ASCIIToUTF16("90025")); | 1028 profile.SetInfo(ADDRESS_HOME_ZIP, ASCIIToUTF16("90025")); |
| 1072 profile.SetInfo(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("US")); | 1029 profile.SetInfo(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("US")); |
| 1073 profile.SetInfo(PHONE_HOME_WHOLE_NUMBER, ASCIIToUTF16("18181234567")); | 1030 profile.SetInfo(PHONE_HOME_WHOLE_NUMBER, ASCIIToUTF16("18181234567")); |
| 1074 profile.SetInfo(PHONE_FAX_WHOLE_NUMBER, ASCIIToUTF16("1915243678")); | |
| 1075 db.GetAutofillTable()->AddAutofillProfile(profile); | 1031 db.GetAutofillTable()->AddAutofillProfile(profile); |
| 1076 | 1032 |
| 1077 // Set a mocked value for the profile's creation time. | 1033 // Set a mocked value for the profile's creation time. |
| 1078 const time_t mock_creation_date = Time::Now().ToTimeT() - 13; | 1034 const time_t mock_creation_date = Time::Now().ToTimeT() - 13; |
| 1079 sql::Statement s_mock_creation_date(db.GetSQLConnection()->GetUniqueStatement( | 1035 sql::Statement s_mock_creation_date(db.GetSQLConnection()->GetUniqueStatement( |
| 1080 "UPDATE autofill_profiles SET date_modified = ?")); | 1036 "UPDATE autofill_profiles SET date_modified = ?")); |
| 1081 ASSERT_TRUE(s_mock_creation_date); | 1037 ASSERT_TRUE(s_mock_creation_date); |
| 1082 s_mock_creation_date.BindInt64(0, mock_creation_date); | 1038 s_mock_creation_date.BindInt64(0, mock_creation_date); |
| 1083 ASSERT_TRUE(s_mock_creation_date.Run()); | 1039 ASSERT_TRUE(s_mock_creation_date.Run()); |
| 1084 | 1040 |
| (...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1479 | 1435 |
| 1480 // make sure the lists of entries match | 1436 // make sure the lists of entries match |
| 1481 ASSERT_EQ(expected_entries.size(), entry_set.size()); | 1437 ASSERT_EQ(expected_entries.size(), entry_set.size()); |
| 1482 AutofillEntrySetIterator it; | 1438 AutofillEntrySetIterator it; |
| 1483 for (it = entry_set.begin(); it != entry_set.end(); it++) { | 1439 for (it = entry_set.begin(); it != entry_set.end(); it++) { |
| 1484 expected_entries.erase(*it); | 1440 expected_entries.erase(*it); |
| 1485 } | 1441 } |
| 1486 | 1442 |
| 1487 EXPECT_EQ(0U, expected_entries.size()); | 1443 EXPECT_EQ(0U, expected_entries.size()); |
| 1488 } | 1444 } |
| OLD | NEW |