| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "base/location.h" | 5 #include "base/location.h" |
| 6 #include "base/message_loop/message_loop.h" | 6 #include "base/message_loop/message_loop.h" |
| 7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "components/autofill/core/browser/autofill_profile.h" | 8 #include "components/autofill/core/browser/autofill_profile.h" |
| 9 #include "components/autofill/core/browser/webdata/autofill_change.h" | 9 #include "components/autofill/core/browser/webdata/autofill_change.h" |
| 10 #include "components/autofill/core/browser/webdata/autofill_profile_syncable_ser
vice.h" | 10 #include "components/autofill/core/browser/webdata/autofill_profile_syncable_ser
vice.h" |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 // Returns a profile with all fields set. Contains identical data to the data | 130 // Returns a profile with all fields set. Contains identical data to the data |
| 131 // returned from ConstructCompleteSyncData(). | 131 // returned from ConstructCompleteSyncData(). |
| 132 scoped_ptr<AutofillProfile> ConstructCompleteProfile() { | 132 scoped_ptr<AutofillProfile> ConstructCompleteProfile() { |
| 133 scoped_ptr<AutofillProfile> profile( | 133 scoped_ptr<AutofillProfile> profile( |
| 134 new AutofillProfile(kGuid1, kHttpsOrigin)); | 134 new AutofillProfile(kGuid1, kHttpsOrigin)); |
| 135 | 135 |
| 136 std::vector<base::string16> names; | 136 std::vector<base::string16> names; |
| 137 names.push_back(ASCIIToUTF16("John K. Doe, Jr.")); | 137 names.push_back(ASCIIToUTF16("John K. Doe, Jr.")); |
| 138 names.push_back(ASCIIToUTF16("Jane Luise Smith MD")); | 138 names.push_back(ASCIIToUTF16("Jane Luise Smith MD")); |
| 139 profile->SetRawMultiInfo(NAME_FULL, names); | 139 profile->SetRawMultiInfo(NAME_FULL, names); |
| 140 names.clear(); |
| 141 names.push_back(ASCIIToUTF16("John")); |
| 142 names.push_back(ASCIIToUTF16("Jane")); |
| 143 profile->SetRawMultiInfo(NAME_FIRST, names); |
| 144 names.clear(); |
| 145 names.push_back(ASCIIToUTF16("K.")); |
| 146 names.push_back(ASCIIToUTF16("Luise")); |
| 147 profile->SetRawMultiInfo(NAME_MIDDLE, names); |
| 148 names.clear(); |
| 149 names.push_back(ASCIIToUTF16("Doe")); |
| 150 names.push_back(ASCIIToUTF16("Smith")); |
| 151 profile->SetRawMultiInfo(NAME_LAST, names); |
| 140 | 152 |
| 141 std::vector<base::string16> emails; | 153 std::vector<base::string16> emails; |
| 142 emails.push_back(ASCIIToUTF16("user@example.com")); | 154 emails.push_back(ASCIIToUTF16("user@example.com")); |
| 143 emails.push_back(ASCIIToUTF16("superuser@example.org")); | 155 emails.push_back(ASCIIToUTF16("superuser@example.org")); |
| 144 profile->SetRawMultiInfo(EMAIL_ADDRESS, emails); | 156 profile->SetRawMultiInfo(EMAIL_ADDRESS, emails); |
| 145 | 157 |
| 146 std::vector<base::string16> phones; | 158 std::vector<base::string16> phones; |
| 147 phones.push_back(ASCIIToUTF16("1.800.555.1234")); | 159 phones.push_back(ASCIIToUTF16("1.800.555.1234")); |
| 148 phones.push_back(ASCIIToUTF16("1.866.650.0000")); | 160 phones.push_back(ASCIIToUTF16("1.866.650.0000")); |
| 149 profile->SetRawMultiInfo(PHONE_HOME_WHOLE_NUMBER, phones); | 161 profile->SetRawMultiInfo(PHONE_HOME_WHOLE_NUMBER, phones); |
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 441 profiles_from_web_db.push_back(new AutofillProfile(profile)); | 453 profiles_from_web_db.push_back(new AutofillProfile(profile)); |
| 442 | 454 |
| 443 // Create a Sync profile identical to |profile|, except with no origin set. | 455 // Create a Sync profile identical to |profile|, except with no origin set. |
| 444 sync_pb::EntitySpecifics specifics; | 456 sync_pb::EntitySpecifics specifics; |
| 445 sync_pb::AutofillProfileSpecifics* autofill_specifics = | 457 sync_pb::AutofillProfileSpecifics* autofill_specifics = |
| 446 specifics.mutable_autofill_profile(); | 458 specifics.mutable_autofill_profile(); |
| 447 autofill_specifics->set_guid(profile.guid()); | 459 autofill_specifics->set_guid(profile.guid()); |
| 448 autofill_specifics->add_name_first("John"); | 460 autofill_specifics->add_name_first("John"); |
| 449 autofill_specifics->add_name_middle(std::string()); | 461 autofill_specifics->add_name_middle(std::string()); |
| 450 autofill_specifics->add_name_last(std::string()); | 462 autofill_specifics->add_name_last(std::string()); |
| 451 autofill_specifics->add_name_full("John"); | 463 autofill_specifics->add_name_full(std::string()); |
| 452 autofill_specifics->add_email_address(std::string()); | 464 autofill_specifics->add_email_address(std::string()); |
| 453 autofill_specifics->add_phone_home_whole_number(std::string()); | 465 autofill_specifics->add_phone_home_whole_number(std::string()); |
| 454 autofill_specifics->set_address_home_line1("1 1st st"); | 466 autofill_specifics->set_address_home_line1("1 1st st"); |
| 455 EXPECT_FALSE(autofill_specifics->has_origin()); | 467 EXPECT_FALSE(autofill_specifics->has_origin()); |
| 456 | 468 |
| 457 syncer::SyncDataList data_list; | 469 syncer::SyncDataList data_list; |
| 458 data_list.push_back( | 470 data_list.push_back( |
| 459 syncer::SyncData::CreateLocalData( | 471 syncer::SyncData::CreateLocalData( |
| 460 profile.guid(), profile.guid(), specifics)); | 472 profile.guid(), profile.guid(), specifics)); |
| 461 | 473 |
| (...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 886 profiles_from_web_db.push_back(new AutofillProfile(profile)); | 898 profiles_from_web_db.push_back(new AutofillProfile(profile)); |
| 887 | 899 |
| 888 // Remote data does not have an origin value. | 900 // Remote data does not have an origin value. |
| 889 sync_pb::EntitySpecifics specifics; | 901 sync_pb::EntitySpecifics specifics; |
| 890 sync_pb::AutofillProfileSpecifics* autofill_specifics = | 902 sync_pb::AutofillProfileSpecifics* autofill_specifics = |
| 891 specifics.mutable_autofill_profile(); | 903 specifics.mutable_autofill_profile(); |
| 892 autofill_specifics->set_guid(profile.guid()); | 904 autofill_specifics->set_guid(profile.guid()); |
| 893 autofill_specifics->add_name_first("John"); | 905 autofill_specifics->add_name_first("John"); |
| 894 autofill_specifics->add_name_middle(std::string()); | 906 autofill_specifics->add_name_middle(std::string()); |
| 895 autofill_specifics->add_name_last(std::string()); | 907 autofill_specifics->add_name_last(std::string()); |
| 896 autofill_specifics->add_name_full("John"); | 908 autofill_specifics->add_name_full(std::string()); |
| 897 autofill_specifics->add_email_address(std::string()); | 909 autofill_specifics->add_email_address(std::string()); |
| 898 autofill_specifics->add_phone_home_whole_number(std::string()); | 910 autofill_specifics->add_phone_home_whole_number(std::string()); |
| 899 EXPECT_FALSE(autofill_specifics->has_origin()); | 911 EXPECT_FALSE(autofill_specifics->has_origin()); |
| 900 | 912 |
| 901 syncer::SyncDataList data_list; | 913 syncer::SyncDataList data_list; |
| 902 data_list.push_back( | 914 data_list.push_back( |
| 903 syncer::SyncData::CreateLocalData( | 915 syncer::SyncData::CreateLocalData( |
| 904 profile.guid(), profile.guid(), specifics)); | 916 profile.guid(), profile.guid(), specifics)); |
| 905 | 917 |
| 906 // Expect the local autofill profile to still have an origin after sync. | 918 // Expect the local autofill profile to still have an origin after sync. |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1052 | 1064 |
| 1053 // Remote data does not have a language code value. | 1065 // Remote data does not have a language code value. |
| 1054 sync_pb::EntitySpecifics specifics; | 1066 sync_pb::EntitySpecifics specifics; |
| 1055 sync_pb::AutofillProfileSpecifics* autofill_specifics = | 1067 sync_pb::AutofillProfileSpecifics* autofill_specifics = |
| 1056 specifics.mutable_autofill_profile(); | 1068 specifics.mutable_autofill_profile(); |
| 1057 autofill_specifics->set_guid(profile.guid()); | 1069 autofill_specifics->set_guid(profile.guid()); |
| 1058 autofill_specifics->set_origin(profile.origin()); | 1070 autofill_specifics->set_origin(profile.origin()); |
| 1059 autofill_specifics->add_name_first("John"); | 1071 autofill_specifics->add_name_first("John"); |
| 1060 autofill_specifics->add_name_middle(std::string()); | 1072 autofill_specifics->add_name_middle(std::string()); |
| 1061 autofill_specifics->add_name_last(std::string()); | 1073 autofill_specifics->add_name_last(std::string()); |
| 1062 autofill_specifics->add_name_full("John"); | 1074 autofill_specifics->add_name_full(std::string()); |
| 1063 autofill_specifics->add_email_address(std::string()); | 1075 autofill_specifics->add_email_address(std::string()); |
| 1064 autofill_specifics->add_phone_home_whole_number(std::string()); | 1076 autofill_specifics->add_phone_home_whole_number(std::string()); |
| 1065 EXPECT_FALSE(autofill_specifics->has_address_home_language_code()); | 1077 EXPECT_FALSE(autofill_specifics->has_address_home_language_code()); |
| 1066 | 1078 |
| 1067 syncer::SyncDataList data_list; | 1079 syncer::SyncDataList data_list; |
| 1068 data_list.push_back( | 1080 data_list.push_back( |
| 1069 syncer::SyncData::CreateLocalData( | 1081 syncer::SyncData::CreateLocalData( |
| 1070 profile.guid(), profile.guid(), specifics)); | 1082 profile.guid(), profile.guid(), specifics)); |
| 1071 | 1083 |
| 1072 // Expect local autofill profile to still have "en" language code after sync. | 1084 // Expect local autofill profile to still have "en" language code after sync. |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1138 MergeDataAndStartSyncing(profiles_from_web_db, data_list, | 1150 MergeDataAndStartSyncing(profiles_from_web_db, data_list, |
| 1139 expected_empty_bundle, expected_empty_change_list); | 1151 expected_empty_bundle, expected_empty_change_list); |
| 1140 autofill_syncable_service_.StopSyncing(syncer::AUTOFILL_PROFILE); | 1152 autofill_syncable_service_.StopSyncing(syncer::AUTOFILL_PROFILE); |
| 1141 } | 1153 } |
| 1142 | 1154 |
| 1143 TEST_F(AutofillProfileSyncableServiceTest, EmptySyncPreservesFullName) { | 1155 TEST_F(AutofillProfileSyncableServiceTest, EmptySyncPreservesFullName) { |
| 1144 std::vector<AutofillProfile*> profiles_from_web_db; | 1156 std::vector<AutofillProfile*> profiles_from_web_db; |
| 1145 | 1157 |
| 1146 // Local autofill profile has a full name. | 1158 // Local autofill profile has a full name. |
| 1147 AutofillProfile profile(kGuid1, kHttpsOrigin); | 1159 AutofillProfile profile(kGuid1, kHttpsOrigin); |
| 1148 profile.SetRawInfo(NAME_FULL, ASCIIToUTF16("John Jacob Smith, Jr")); | 1160 profile.SetInfo(AutofillType(NAME_FULL), |
| 1161 ASCIIToUTF16("John Jacob Smith, Jr"), "en-US"); |
| 1149 profiles_from_web_db.push_back(new AutofillProfile(profile)); | 1162 profiles_from_web_db.push_back(new AutofillProfile(profile)); |
| 1150 | 1163 |
| 1151 // Remote data does not have a full name value. | 1164 // Remote data does not have a full name value. |
| 1152 sync_pb::EntitySpecifics specifics; | 1165 sync_pb::EntitySpecifics specifics; |
| 1153 sync_pb::AutofillProfileSpecifics* autofill_specifics = | 1166 sync_pb::AutofillProfileSpecifics* autofill_specifics = |
| 1154 specifics.mutable_autofill_profile(); | 1167 specifics.mutable_autofill_profile(); |
| 1155 autofill_specifics->set_guid(profile.guid()); | 1168 autofill_specifics->set_guid(profile.guid()); |
| 1156 autofill_specifics->set_origin(profile.origin()); | 1169 autofill_specifics->set_origin(profile.origin()); |
| 1157 autofill_specifics->add_name_first(std::string("John")); | 1170 autofill_specifics->add_name_first(std::string("John")); |
| 1158 autofill_specifics->add_name_middle(std::string("Jacob")); | 1171 autofill_specifics->add_name_middle(std::string("Jacob")); |
| 1159 autofill_specifics->add_name_last(std::string("Smith")); | 1172 autofill_specifics->add_name_last(std::string("Smith")); |
| 1160 | 1173 |
| 1161 syncer::SyncDataList data_list; | 1174 syncer::SyncDataList data_list; |
| 1162 data_list.push_back( | 1175 data_list.push_back( |
| 1163 syncer::SyncData::CreateLocalData( | 1176 syncer::SyncData::CreateLocalData( |
| 1164 profile.guid(), profile.guid(), specifics)); | 1177 profile.guid(), profile.guid(), specifics)); |
| 1165 | 1178 |
| 1166 // Expect local autofill profile to still have the same full name after sync. | 1179 // Expect local autofill profile to still have the same full name after sync. |
| 1167 MockAutofillProfileSyncableService::DataBundle expected_bundle; | 1180 MockAutofillProfileSyncableService::DataBundle expected_bundle; |
| 1168 AutofillProfile expected_profile(profile.guid(), profile.origin()); | 1181 AutofillProfile expected_profile(profile.guid(), profile.origin()); |
| 1169 expected_profile.SetRawInfo(NAME_FULL, ASCIIToUTF16("John Jacob Smith, Jr")); | 1182 expected_profile.SetInfo(AutofillType(NAME_FULL), |
| 1183 ASCIIToUTF16("John Jacob Smith, Jr"), |
| 1184 "en-US"); |
| 1170 expected_bundle.profiles_to_update.push_back(&expected_profile); | 1185 expected_bundle.profiles_to_update.push_back(&expected_profile); |
| 1171 | 1186 |
| 1172 // Expect no changes to remote data. | 1187 // Expect no changes to remote data. |
| 1173 syncer::SyncChangeList expected_empty_change_list; | 1188 syncer::SyncChangeList expected_empty_change_list; |
| 1174 | 1189 |
| 1175 MergeDataAndStartSyncing(profiles_from_web_db, data_list, | 1190 MergeDataAndStartSyncing(profiles_from_web_db, data_list, |
| 1176 expected_bundle, expected_empty_change_list); | 1191 expected_bundle, expected_empty_change_list); |
| 1177 autofill_syncable_service_.StopSyncing(syncer::AUTOFILL_PROFILE); | 1192 autofill_syncable_service_.StopSyncing(syncer::AUTOFILL_PROFILE); |
| 1178 } | 1193 } |
| 1179 | 1194 |
| 1180 } // namespace autofill | 1195 } // namespace autofill |
| OLD | NEW |