Index: chrome/browser/webdata/autofill_profile_syncable_service_unittest.cc |
diff --git a/chrome/browser/webdata/autofill_profile_syncable_service_unittest.cc b/chrome/browser/webdata/autofill_profile_syncable_service_unittest.cc |
index bc5161454a2cb5edb82788823820fc8a126c0438..86bc0d299dfe68f767f563b4ce474f272aeb46f1 100644 |
--- a/chrome/browser/webdata/autofill_profile_syncable_service_unittest.cc |
+++ b/chrome/browser/webdata/autofill_profile_syncable_service_unittest.cc |
@@ -36,10 +36,13 @@ const char kSettingsOrigin[] = "Chrome settings"; |
class MockAutofillProfileSyncableService |
: public AutofillProfileSyncableService { |
public: |
- MockAutofillProfileSyncableService() { |
- } |
+ MockAutofillProfileSyncableService() {} |
virtual ~MockAutofillProfileSyncableService() {} |
+ using AutofillProfileSyncableService::DataBundle; |
+ using AutofillProfileSyncableService::set_sync_processor; |
+ using AutofillProfileSyncableService::CreateData; |
+ |
MOCK_METHOD1(LoadAutofillData, bool(std::vector<AutofillProfile*>*)); |
MOCK_METHOD1(SaveChangesToWebData, |
bool(const AutofillProfileSyncableService::DataBundle&)); |
@@ -71,21 +74,18 @@ MATCHER_P(CheckSyncChanges, n_sync_changes_list, "") { |
MATCHER_P(DataBundleCheck, n_bundle, "") { |
if ((arg.profiles_to_delete.size() != n_bundle.profiles_to_delete.size()) || |
(arg.profiles_to_update.size() != n_bundle.profiles_to_update.size()) || |
- (arg.profiles_to_add.size() != n_bundle.profiles_to_add.size())) { |
+ (arg.profiles_to_add.size() != n_bundle.profiles_to_add.size())) |
return false; |
- } |
for (size_t i = 0; i < arg.profiles_to_delete.size(); ++i) { |
if (arg.profiles_to_delete[i] != n_bundle.profiles_to_delete[i]) |
return false; |
} |
for (size_t i = 0; i < arg.profiles_to_update.size(); ++i) { |
- if (arg.profiles_to_update[i]->guid() != |
- n_bundle.profiles_to_update[i]->guid()) { |
+ if (*arg.profiles_to_update[i] != *n_bundle.profiles_to_update[i]) |
return false; |
- } |
} |
for (size_t i = 0; i < arg.profiles_to_add.size(); ++i) { |
- if (arg.profiles_to_add[i]->Compare(*n_bundle.profiles_to_add[i])) |
+ if (*arg.profiles_to_add[i] != *n_bundle.profiles_to_add[i]) |
return false; |
} |
return true; |
@@ -98,7 +98,25 @@ class MockSyncChangeProcessor : public syncer::SyncChangeProcessor { |
MOCK_METHOD2(ProcessSyncChanges, |
syncer::SyncError(const tracked_objects::Location&, |
- const syncer::SyncChangeList&)); |
+ const syncer::SyncChangeList&)); |
+}; |
+ |
+class TestSyncChangeProcessor : public syncer::SyncChangeProcessor { |
+ public: |
+ TestSyncChangeProcessor() {} |
+ virtual ~TestSyncChangeProcessor() {} |
+ |
+ virtual syncer::SyncError ProcessSyncChanges( |
+ const tracked_objects::Location& location, |
+ const syncer::SyncChangeList& changes) OVERRIDE { |
+ changes_ = changes; |
+ return syncer::SyncError(); |
+ } |
+ |
+ const syncer::SyncChangeList& changes() { return changes_; } |
+ |
+ private: |
+ syncer::SyncChangeList changes_; |
}; |
class AutofillProfileSyncableServiceTest : public testing::Test { |
@@ -111,6 +129,35 @@ class AutofillProfileSyncableServiceTest : public testing::Test { |
sync_processor_.reset(new MockSyncChangeProcessor); |
} |
+ // Wrapper around AutofillProfileSyncableService::MergeDataAndStartSyncing() |
+ // that also verifies expectations. |
+ void MergeDataAndStartSyncing( |
+ const std::vector<AutofillProfile*>& profiles_from_web_db, |
+ const syncer::SyncDataList& data_list, |
+ const MockAutofillProfileSyncableService::DataBundle& expected_bundle, |
+ const syncer::SyncChangeList& expected_change_list) { |
+ EXPECT_CALL(autofill_syncable_service_, LoadAutofillData(_)) |
+ .Times(1) |
+ .WillOnce(DoAll(CopyData(&profiles_from_web_db), Return(true))); |
Evan Stade
2013/06/11 21:38:44
I think this crosses the line of acceptably simple
Ilya Sherman
2013/06/11 21:53:42
This is pre-existing gmock code that I've simply m
|
+ EXPECT_CALL(autofill_syncable_service_, |
+ SaveChangesToWebData(DataBundleCheck(expected_bundle))) |
+ .Times(1) |
+ .WillOnce(Return(true)); |
+ ON_CALL(*sync_processor_, ProcessSyncChanges(_, _)) |
+ .WillByDefault(Return(syncer::SyncError())); |
+ EXPECT_CALL(*sync_processor_, |
+ ProcessSyncChanges(_, CheckSyncChanges(expected_change_list))) |
+ .Times(1) |
+ .WillOnce(Return(syncer::SyncError())); |
+ |
+ // Takes ownership of sync_processor_. |
+ autofill_syncable_service_.MergeDataAndStartSyncing( |
+ syncer::AUTOFILL_PROFILE, data_list, |
+ sync_processor_.PassAs<syncer::SyncChangeProcessor>(), |
+ scoped_ptr<syncer::SyncErrorFactory>( |
+ new syncer::SyncErrorFactoryMock())); |
+ } |
+ |
protected: |
base::MessageLoop message_loop_; |
content::TestBrowserThread ui_thread_; |
@@ -120,7 +167,7 @@ class AutofillProfileSyncableServiceTest : public testing::Test { |
}; |
TEST_F(AutofillProfileSyncableServiceTest, MergeDataAndStartSyncing) { |
- std::vector<AutofillProfile *> profiles_from_web_db; |
+ std::vector<AutofillProfile*> profiles_from_web_db; |
std::string guid_present1 = kGuid1; |
std::string guid_present2 = kGuid2; |
std::string guid_synced1 = kGuid3; |
@@ -150,7 +197,7 @@ TEST_F(AutofillProfileSyncableServiceTest, MergeDataAndStartSyncing) { |
AutofillProfile profile2(guid_synced2, origin_synced2); |
profile2.SetRawInfo(autofill::NAME_FIRST, UTF8ToUTF16("Harry")); |
data_list.push_back(autofill_syncable_service_.CreateData(profile2)); |
- // This one will have the name updated. |
+ // This one will have the name and origin updated. |
AutofillProfile profile3(guid_present2, origin_synced2); |
profile3.SetRawInfo(autofill::NAME_FIRST, UTF8ToUTF16("Tom Doe")); |
data_list.push_back(autofill_syncable_service_.CreateData(profile3)); |
@@ -159,38 +206,142 @@ TEST_F(AutofillProfileSyncableServiceTest, MergeDataAndStartSyncing) { |
expected_change_list.push_back( |
syncer::SyncChange(FROM_HERE, |
syncer::SyncChange::ACTION_ADD, |
- AutofillProfileSyncableService::CreateData( |
- (*profiles_from_web_db.front())))); |
+ MockAutofillProfileSyncableService::CreateData( |
+ *profiles_from_web_db.front()))); |
- AutofillProfileSyncableService::DataBundle expected_bundle; |
+ MockAutofillProfileSyncableService::DataBundle expected_bundle; |
expected_bundle.profiles_to_add.push_back(&profile1); |
expected_bundle.profiles_to_add.push_back(&profile2); |
expected_bundle.profiles_to_update.push_back(&profile3); |
- EXPECT_CALL(autofill_syncable_service_, LoadAutofillData(_)) |
- .Times(1) |
- .WillOnce(DoAll(CopyData(&profiles_from_web_db), Return(true))); |
- EXPECT_CALL(autofill_syncable_service_, |
- SaveChangesToWebData(DataBundleCheck(expected_bundle))) |
- .Times(1) |
- .WillOnce(Return(true)); |
- ON_CALL(*sync_processor_, ProcessSyncChanges(_, _)) |
- .WillByDefault(Return(syncer::SyncError())); |
- EXPECT_CALL(*sync_processor_, |
- ProcessSyncChanges(_, CheckSyncChanges(expected_change_list))) |
- .Times(1) |
- .WillOnce(Return(syncer::SyncError())); |
+ MergeDataAndStartSyncing( |
+ profiles_from_web_db, data_list, expected_bundle, expected_change_list); |
+ autofill_syncable_service_.StopSyncing(syncer::AUTOFILL_PROFILE); |
+} |
+ |
+TEST_F(AutofillProfileSyncableServiceTest, MergeIdenticalProfiles) { |
+ std::vector<AutofillProfile*> profiles_from_web_db; |
+ std::string guid_present1 = kGuid1; |
+ std::string guid_present2 = kGuid2; |
+ std::string guid_synced1 = kGuid3; |
+ std::string guid_synced2 = kGuid4; |
+ std::string origin_present1 = kHttpOrigin; |
+ std::string origin_present2 = kSettingsOrigin; |
+ std::string origin_synced1 = kHttpsOrigin; |
+ std::string origin_synced2 = kHttpsOrigin; |
+ |
+ profiles_from_web_db.push_back( |
+ new AutofillProfile(guid_present1, origin_present1)); |
+ profiles_from_web_db.back()->SetRawInfo( |
+ autofill::NAME_FIRST, UTF8ToUTF16("John")); |
+ profiles_from_web_db.back()->SetRawInfo( |
+ autofill::ADDRESS_HOME_LINE1, UTF8ToUTF16("1 1st st")); |
+ profiles_from_web_db.push_back( |
+ new AutofillProfile(guid_present2, origin_present2)); |
+ profiles_from_web_db.back()->SetRawInfo( |
+ autofill::NAME_FIRST, UTF8ToUTF16("Tom")); |
+ profiles_from_web_db.back()->SetRawInfo( |
+ autofill::ADDRESS_HOME_LINE1, UTF8ToUTF16("2 2nd st")); |
+ |
+ // The synced profiles are identical to the local ones, except that the guids |
+ // are different. |
+ syncer::SyncDataList data_list; |
+ AutofillProfile profile1(guid_synced1, origin_synced1); |
+ profile1.SetRawInfo(autofill::NAME_FIRST, UTF8ToUTF16("John")); |
+ profile1.SetRawInfo(autofill::ADDRESS_HOME_LINE1, UTF8ToUTF16("1 1st st")); |
+ data_list.push_back(autofill_syncable_service_.CreateData(profile1)); |
+ AutofillProfile profile2(guid_synced2, origin_synced2); |
+ profile2.SetRawInfo(autofill::NAME_FIRST, UTF8ToUTF16("Tom")); |
+ profile2.SetRawInfo(autofill::ADDRESS_HOME_LINE1, UTF8ToUTF16("2 2nd st")); |
+ data_list.push_back(autofill_syncable_service_.CreateData(profile2)); |
+ |
+ AutofillProfile expected_profile(profile2); |
+ expected_profile.set_origin(kSettingsOrigin); |
+ syncer::SyncChangeList expected_change_list; |
+ expected_change_list.push_back( |
+ syncer::SyncChange(FROM_HERE, |
+ syncer::SyncChange::ACTION_UPDATE, |
+ MockAutofillProfileSyncableService::CreateData( |
+ expected_profile))); |
+ |
+ MockAutofillProfileSyncableService::DataBundle expected_bundle; |
+ expected_bundle.profiles_to_delete.push_back(guid_present1); |
+ expected_bundle.profiles_to_delete.push_back(guid_present2); |
+ expected_bundle.profiles_to_add.push_back(&profile1); |
+ expected_bundle.profiles_to_add.push_back(&expected_profile); |
+ |
+ MergeDataAndStartSyncing( |
+ profiles_from_web_db, data_list, expected_bundle, expected_change_list); |
+ autofill_syncable_service_.StopSyncing(syncer::AUTOFILL_PROFILE); |
+} |
+ |
+TEST_F(AutofillProfileSyncableServiceTest, MergeSimilarProfiles) { |
+ std::vector<AutofillProfile*> profiles_from_web_db; |
+ std::string guid_present1 = kGuid1; |
+ std::string guid_present2 = kGuid2; |
+ std::string guid_synced1 = kGuid3; |
+ std::string guid_synced2 = kGuid4; |
+ std::string origin_present1 = kHttpOrigin; |
+ std::string origin_present2 = kSettingsOrigin; |
+ std::string origin_synced1 = kHttpsOrigin; |
+ std::string origin_synced2 = kHttpsOrigin; |
+ |
+ profiles_from_web_db.push_back( |
+ new AutofillProfile(guid_present1, origin_present1)); |
+ profiles_from_web_db.back()->SetRawInfo( |
+ autofill::NAME_FIRST, UTF8ToUTF16("John")); |
+ profiles_from_web_db.back()->SetRawInfo( |
+ autofill::ADDRESS_HOME_LINE1, UTF8ToUTF16("1 1st st")); |
+ profiles_from_web_db.push_back( |
+ new AutofillProfile(guid_present2, origin_present2)); |
+ profiles_from_web_db.back()->SetRawInfo( |
+ autofill::NAME_FIRST, UTF8ToUTF16("Tom")); |
+ profiles_from_web_db.back()->SetRawInfo( |
+ autofill::ADDRESS_HOME_LINE1, UTF8ToUTF16("2 2nd st")); |
+ |
+ // The synced profiles are identical to the local ones, except that the guids |
+ // are different. |
+ syncer::SyncDataList data_list; |
+ AutofillProfile profile1(guid_synced1, origin_synced1); |
+ profile1.SetRawInfo(autofill::NAME_FIRST, UTF8ToUTF16("John")); |
+ profile1.SetRawInfo(autofill::ADDRESS_HOME_LINE1, UTF8ToUTF16("1 1st st")); |
+ profile1.SetRawInfo(autofill::COMPANY_NAME, UTF8ToUTF16("Frobbers, Inc.")); |
+ data_list.push_back(autofill_syncable_service_.CreateData(profile1)); |
+ AutofillProfile profile2(guid_synced2, origin_synced2); |
+ profile2.SetRawInfo(autofill::NAME_FIRST, UTF8ToUTF16("Tom")); |
+ profile2.SetRawInfo(autofill::ADDRESS_HOME_LINE1, UTF8ToUTF16("2 2nd st")); |
+ profile2.SetRawInfo(autofill::COMPANY_NAME, UTF8ToUTF16("Fizzbang, LLC.")); |
+ data_list.push_back(autofill_syncable_service_.CreateData(profile2)); |
+ |
+ // The first profile should have its origin updated. |
+ // The second profile should remain as-is, because an unverified profile |
+ // should never overwrite a verified one. |
+ AutofillProfile expected_profile(profile1); |
+ expected_profile.set_origin(origin_present1); |
+ syncer::SyncChangeList expected_change_list; |
+ expected_change_list.push_back( |
+ syncer::SyncChange(FROM_HERE, |
+ syncer::SyncChange::ACTION_ADD, |
+ MockAutofillProfileSyncableService::CreateData( |
+ *profiles_from_web_db.back()))); |
+ expected_change_list.push_back( |
+ syncer::SyncChange(FROM_HERE, |
+ syncer::SyncChange::ACTION_UPDATE, |
+ MockAutofillProfileSyncableService::CreateData( |
+ expected_profile))); |
- // Takes ownership of sync_processor_. |
- autofill_syncable_service_.MergeDataAndStartSyncing( |
- syncer::AUTOFILL_PROFILE, data_list, |
- sync_processor_.PassAs<syncer::SyncChangeProcessor>(), |
- scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
+ MockAutofillProfileSyncableService::DataBundle expected_bundle; |
+ expected_bundle.profiles_to_delete.push_back(guid_present1); |
+ expected_bundle.profiles_to_add.push_back(&expected_profile); |
+ expected_bundle.profiles_to_add.push_back(&profile2); |
+ |
+ MergeDataAndStartSyncing( |
+ profiles_from_web_db, data_list, expected_bundle, expected_change_list); |
autofill_syncable_service_.StopSyncing(syncer::AUTOFILL_PROFILE); |
} |
TEST_F(AutofillProfileSyncableServiceTest, GetAllSyncData) { |
- std::vector<AutofillProfile *> profiles_from_web_db; |
+ std::vector<AutofillProfile*> profiles_from_web_db; |
std::string guid_present1 = kGuid1; |
std::string guid_present2 = kGuid2; |
@@ -203,27 +354,22 @@ TEST_F(AutofillProfileSyncableServiceTest, GetAllSyncData) { |
profiles_from_web_db.back()->SetRawInfo( |
autofill::NAME_FIRST, UTF8ToUTF16("Jane")); |
- EXPECT_CALL(autofill_syncable_service_, LoadAutofillData(_)) |
- .Times(1) |
- .WillOnce(DoAll(CopyData(&profiles_from_web_db), Return(true))); |
- EXPECT_CALL(autofill_syncable_service_, SaveChangesToWebData(_)) |
- .Times(1) |
- .WillOnce(Return(true)); |
- ON_CALL(*sync_processor_, ProcessSyncChanges(_, _)) |
- .WillByDefault(Return(syncer::SyncError())); |
- EXPECT_CALL(*sync_processor_, |
- ProcessSyncChanges( |
- _, |
- Property(&syncer::SyncChangeList::size, Eq(2U)))) |
- .Times(1) |
- .WillOnce(Return(syncer::SyncError())); |
+ syncer::SyncChangeList expected_change_list; |
+ expected_change_list.push_back( |
+ syncer::SyncChange(FROM_HERE, |
+ syncer::SyncChange::ACTION_ADD, |
+ MockAutofillProfileSyncableService::CreateData( |
+ *profiles_from_web_db.front()))); |
+ expected_change_list.push_back( |
+ syncer::SyncChange(FROM_HERE, |
+ syncer::SyncChange::ACTION_ADD, |
+ MockAutofillProfileSyncableService::CreateData( |
+ *profiles_from_web_db.back()))); |
+ MockAutofillProfileSyncableService::DataBundle expected_bundle; |
syncer::SyncDataList data_list; |
- // Takes ownership of sync_processor_. |
- autofill_syncable_service_.MergeDataAndStartSyncing( |
- syncer::AUTOFILL_PROFILE, data_list, |
- sync_processor_.PassAs<syncer::SyncChangeProcessor>(), |
- scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
+ MergeDataAndStartSyncing( |
+ profiles_from_web_db, data_list, expected_bundle, expected_change_list); |
syncer::SyncDataList data = |
autofill_syncable_service_.GetAllSyncData(syncer::AUTOFILL_PROFILE); |
@@ -231,12 +377,10 @@ TEST_F(AutofillProfileSyncableServiceTest, GetAllSyncData) { |
ASSERT_EQ(2U, data.size()); |
EXPECT_EQ(guid_present1, data[0].GetSpecifics().autofill_profile().guid()); |
EXPECT_EQ(guid_present2, data[1].GetSpecifics().autofill_profile().guid()); |
- // TODO(isherman): Verify that the origins match once they are saved and read |
- // from the database and included in the Sync protocol buffers. |
- // http://crbug.com/170401 |
- // EXPECT_EQ(kHttpOrigin, data[0].GetSpecifics().autofill_profile().origin()); |
- // EXPECT_EQ(kHttpsOrigin, |
- // data[1].GetSpecifics().autofill_profile().origin()); |
+ EXPECT_EQ(kHttpOrigin, data[0].GetSpecifics().autofill_profile().origin()); |
+ EXPECT_EQ(kHttpsOrigin, data[1].GetSpecifics().autofill_profile().origin()); |
+ |
+ autofill_syncable_service_.StopSyncing(syncer::AUTOFILL_PROFILE); |
} |
TEST_F(AutofillProfileSyncableServiceTest, ProcessSyncChanges) { |
@@ -248,17 +392,18 @@ TEST_F(AutofillProfileSyncableServiceTest, ProcessSyncChanges) { |
AutofillProfile profile(guid_synced, kHttpOrigin); |
profile.SetRawInfo(autofill::NAME_FIRST, UTF8ToUTF16("Jane")); |
change_list.push_back( |
- syncer::SyncChange(FROM_HERE, |
- syncer::SyncChange::ACTION_ADD, |
- AutofillProfileSyncableService::CreateData(profile))); |
+ syncer::SyncChange( |
+ FROM_HERE, |
+ syncer::SyncChange::ACTION_ADD, |
+ MockAutofillProfileSyncableService::CreateData(profile))); |
AutofillProfile empty_profile(guid_present, kHttpsOrigin); |
change_list.push_back( |
syncer::SyncChange( |
FROM_HERE, |
syncer::SyncChange::ACTION_DELETE, |
- AutofillProfileSyncableService::CreateData(empty_profile))); |
+ MockAutofillProfileSyncableService::CreateData(empty_profile))); |
- AutofillProfileSyncableService::DataBundle expected_bundle; |
+ MockAutofillProfileSyncableService::DataBundle expected_bundle; |
expected_bundle.profiles_to_delete.push_back(guid_present); |
expected_bundle.profiles_to_add.push_back(&profile); |
@@ -274,20 +419,43 @@ TEST_F(AutofillProfileSyncableServiceTest, ProcessSyncChanges) { |
EXPECT_FALSE(error.IsSet()); |
} |
-TEST_F(AutofillProfileSyncableServiceTest, ActOnChange) { |
- AutofillProfile profile(kGuid1, std::string()); |
+TEST_F(AutofillProfileSyncableServiceTest, AutofillProfileAdded) { |
+ // Will be owned by the syncable service. Keep a reference available here for |
+ // verifying test expectations. |
+ TestSyncChangeProcessor* sync_change_processor = new TestSyncChangeProcessor; |
+ autofill_syncable_service_.set_sync_processor(sync_change_processor); |
+ |
+ AutofillProfile profile(kGuid1, kHttpsOrigin); |
profile.SetRawInfo(autofill::NAME_FIRST, UTF8ToUTF16("Jane")); |
- AutofillProfileChange change1(AutofillProfileChange::ADD, kGuid1, &profile); |
- AutofillProfileChange change2(AutofillProfileChange::REMOVE, kGuid2, NULL); |
- ON_CALL(*sync_processor_, ProcessSyncChanges(_, _)) |
- .WillByDefault( |
- Return(syncer::SyncError(FROM_HERE, std::string("an error"), |
- syncer::AUTOFILL_PROFILE))); |
- EXPECT_CALL(*sync_processor_, ProcessSyncChanges(_, _)).Times(2); |
+ AutofillProfileChange change(AutofillProfileChange::ADD, kGuid1, &profile); |
+ autofill_syncable_service_.AutofillProfileChanged(change); |
+ |
+ ASSERT_EQ(1U, sync_change_processor->changes().size()); |
+ syncer::SyncChange result = sync_change_processor->changes()[0]; |
+ EXPECT_EQ(syncer::SyncChange::ACTION_ADD, result.change_type()); |
+ |
+ sync_pb::AutofillProfileSpecifics specifics = |
+ result.sync_data().GetSpecifics().autofill_profile(); |
+ EXPECT_EQ(kGuid1, specifics.guid()); |
+ EXPECT_EQ(kHttpsOrigin, specifics.origin()); |
+ EXPECT_THAT(specifics.name_first(), testing::ElementsAre("Jane")); |
+} |
- autofill_syncable_service_.set_sync_processor(sync_processor_.release()); |
- autofill_syncable_service_.ActOnChange(change1); |
- autofill_syncable_service_.ActOnChange(change2); |
+TEST_F(AutofillProfileSyncableServiceTest, AutofillProfileDeleted) { |
+ // Will be owned by the syncable service. Keep a reference available here for |
+ // verifying test expectations. |
+ TestSyncChangeProcessor* sync_change_processor = new TestSyncChangeProcessor; |
+ autofill_syncable_service_.set_sync_processor(sync_change_processor); |
+ |
+ AutofillProfileChange change(AutofillProfileChange::REMOVE, kGuid2, NULL); |
+ autofill_syncable_service_.AutofillProfileChanged(change); |
+ |
+ ASSERT_EQ(1U, sync_change_processor->changes().size()); |
+ syncer::SyncChange result = sync_change_processor->changes()[0]; |
+ EXPECT_EQ(syncer::SyncChange::ACTION_DELETE, result.change_type()); |
+ sync_pb::AutofillProfileSpecifics specifics = |
+ result.sync_data().GetSpecifics().autofill_profile(); |
+ EXPECT_EQ(kGuid2, specifics.guid()); |
} |
TEST_F(AutofillProfileSyncableServiceTest, UpdateField) { |
@@ -350,7 +518,7 @@ TEST_F(AutofillProfileSyncableServiceTest, MergeProfile) { |
values.push_back(UTF8ToUTF16("2@1.com")); |
profile1.SetRawMultiInfo(autofill::EMAIL_ADDRESS, values); |
- AutofillProfile profile2(kGuid2, std::string()); |
+ AutofillProfile profile2(kGuid2, kHttpsOrigin); |
profile2.SetRawInfo( |
autofill::ADDRESS_HOME_LINE1, UTF8ToUTF16("111 First St.")); |
@@ -398,6 +566,8 @@ TEST_F(AutofillProfileSyncableServiceTest, MergeProfile) { |
ASSERT_EQ(values.size(), 1U); |
EXPECT_EQ(values[0], UTF8ToUTF16("650234567")); |
+ EXPECT_EQ(profile2.origin(), profile1.origin()); |
+ |
AutofillProfile profile3(kGuid3, kHttpOrigin); |
profile3.SetRawInfo( |
autofill::ADDRESS_HOME_LINE1, UTF8ToUTF16("111 First St.")); |