| Index: components/autofill/core/browser/personal_data_manager_unittest.cc
|
| diff --git a/components/autofill/core/browser/personal_data_manager_unittest.cc b/components/autofill/core/browser/personal_data_manager_unittest.cc
|
| index b9a9cfc32d729afd5eba5fcbe37b1f174bbdf534..49bee42bf2c965f858733edeeddcb1a7bca941e0 100644
|
| --- a/components/autofill/core/browser/personal_data_manager_unittest.cc
|
| +++ b/components/autofill/core/browser/personal_data_manager_unittest.cc
|
| @@ -4535,22 +4535,24 @@ TEST_F(PersonalDataManagerTest, SaveImportedProfile) {
|
| // existing profile in decreasing order of frecency.
|
| TEST_F(PersonalDataManagerTest, MergeProfile_Frecency) {
|
| // Create two very similar profiles except with different company names.
|
| - AutofillProfile profile1(base::GenerateGUID(), "https://www.example.com");
|
| - test::SetProfileInfo(&profile1, "Homer", "Jay", "Simpson",
|
| + std::unique_ptr<AutofillProfile> profile1 = base::MakeUnique<AutofillProfile>(
|
| + base::GenerateGUID(), "https://www.example.com");
|
| + test::SetProfileInfo(profile1.get(), "Homer", "Jay", "Simpson",
|
| "homer.simpson@abc.com", "SNP", "742 Evergreen Terrace",
|
| "", "Springfield", "IL", "91601", "US", "12345678910");
|
| - AutofillProfile profile2(base::GenerateGUID(), "https://www.example.com");
|
| - test::SetProfileInfo(&profile2, "Homer", "Jay", "Simpson",
|
| + AutofillProfile* profile2 =
|
| + new AutofillProfile(base::GenerateGUID(), "https://www.example.com");
|
| + test::SetProfileInfo(profile2, "Homer", "Jay", "Simpson",
|
| "homer.simpson@abc.com", "Fox", "742 Evergreen Terrace",
|
| "", "Springfield", "IL", "91601", "US", "12345678910");
|
|
|
| // Give the "Fox" profile a bigger frecency score.
|
| - profile2.set_use_count(15);
|
| + profile2->set_use_count(15);
|
|
|
| // Create the |existing_profiles| vector.
|
| - std::vector<AutofillProfile*> existing_profiles;
|
| - existing_profiles.push_back(&profile1);
|
| - existing_profiles.push_back(&profile2);
|
| + std::vector<std::unique_ptr<AutofillProfile>> existing_profiles;
|
| + existing_profiles.push_back(std::move(profile1));
|
| + existing_profiles.push_back(base::WrapUnique(profile2));
|
|
|
| // Create a new imported profile with no company name.
|
| AutofillProfile imported_profile(base::GenerateGUID(),
|
| @@ -4562,10 +4564,10 @@ TEST_F(PersonalDataManagerTest, MergeProfile_Frecency) {
|
| // Merge the imported profile into the existing profiles.
|
| std::vector<AutofillProfile> profiles;
|
| std::string guid = personal_data_->MergeProfile(
|
| - imported_profile, existing_profiles, "US-EN", &profiles);
|
| + imported_profile, &existing_profiles, "US-EN", &profiles);
|
|
|
| // The new profile should be merged into the "fox" profile.
|
| - EXPECT_EQ(profile2.guid(), guid);
|
| + EXPECT_EQ(profile2->guid(), guid);
|
| }
|
|
|
| // Tests that MergeProfile produces a merged profile with the expected usage
|
| @@ -4573,18 +4575,19 @@ TEST_F(PersonalDataManagerTest, MergeProfile_Frecency) {
|
| TEST_F(PersonalDataManagerTest, MergeProfile_UsageStats) {
|
| // Create an initial profile with a use count of 10, an old use date and an
|
| // old modification date of 4 days ago.
|
| - AutofillProfile profile(base::GenerateGUID(), "https://www.example.com");
|
| - test::SetProfileInfo(&profile, "Homer", "Jay", "Simpson",
|
| + AutofillProfile* profile =
|
| + new AutofillProfile(base::GenerateGUID(), "https://www.example.com");
|
| + test::SetProfileInfo(profile, "Homer", "Jay", "Simpson",
|
| "homer.simpson@abc.com", "SNP", "742 Evergreen Terrace",
|
| "", "Springfield", "IL", "91601", "US", "12345678910");
|
| - profile.set_use_count(4U);
|
| - profile.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(4));
|
| - profile.set_modification_date(base::Time::Now() -
|
| - base::TimeDelta::FromDays(4));
|
| + profile->set_use_count(4U);
|
| + profile->set_use_date(base::Time::Now() - base::TimeDelta::FromDays(4));
|
| + profile->set_modification_date(base::Time::Now() -
|
| + base::TimeDelta::FromDays(4));
|
|
|
| // Create the |existing_profiles| vector.
|
| - std::vector<AutofillProfile*> existing_profiles;
|
| - existing_profiles.push_back(&profile);
|
| + std::vector<std::unique_ptr<AutofillProfile>> existing_profiles;
|
| + existing_profiles.push_back(base::WrapUnique(profile));
|
|
|
| // Create a new imported profile that will get merged with the existing one.
|
| AutofillProfile imported_profile(base::GenerateGUID(),
|
| @@ -4596,18 +4599,18 @@ TEST_F(PersonalDataManagerTest, MergeProfile_UsageStats) {
|
| // Merge the imported profile into the existing profiles.
|
| std::vector<AutofillProfile> profiles;
|
| std::string guid = personal_data_->MergeProfile(
|
| - imported_profile, existing_profiles, "US-EN", &profiles);
|
| + imported_profile, &existing_profiles, "US-EN", &profiles);
|
|
|
| // The new profile should be merged into the existing profile.
|
| - EXPECT_EQ(profile.guid(), guid);
|
| + EXPECT_EQ(profile->guid(), guid);
|
| // The use count should have be max(4, 1) => 4.
|
| - EXPECT_EQ(4U, profile.use_count());
|
| + EXPECT_EQ(4U, profile->use_count());
|
| // The use date and modification dates should have been set to less than 500
|
| // milliseconds ago.
|
| EXPECT_GT(base::TimeDelta::FromMilliseconds(500),
|
| - base::Time::Now() - profile.use_date());
|
| + base::Time::Now() - profile->use_date());
|
| EXPECT_GT(base::TimeDelta::FromMilliseconds(500),
|
| - base::Time::Now() - profile.modification_date());
|
| + base::Time::Now() - profile->modification_date());
|
| }
|
|
|
| // Tests that DedupeProfiles sets the correct profile guids to
|
| @@ -4615,50 +4618,55 @@ TEST_F(PersonalDataManagerTest, MergeProfile_UsageStats) {
|
| TEST_F(PersonalDataManagerTest, DedupeProfiles_ProfilesToDelete) {
|
| // Create the profile for which to find duplicates. It has the highest
|
| // frecency.
|
| - AutofillProfile profile1(base::GenerateGUID(), "https://www.example.com");
|
| - test::SetProfileInfo(&profile1, "Homer", "Jay", "Simpson",
|
| + AutofillProfile* profile1 =
|
| + new AutofillProfile(base::GenerateGUID(), "https://www.example.com");
|
| + test::SetProfileInfo(profile1, "Homer", "Jay", "Simpson",
|
| "homer.simpson@abc.com", "", "742. Evergreen Terrace",
|
| "", "Springfield", "IL", "91601", "US", "12345678910");
|
| - profile1.set_use_count(9);
|
| + profile1->set_use_count(9);
|
|
|
| // Create a different profile that should not be deduped (different address).
|
| - AutofillProfile profile2(base::GenerateGUID(), "https://www.example.com");
|
| - test::SetProfileInfo(&profile2, "Homer", "Jay", "Simpson",
|
| + AutofillProfile* profile2 =
|
| + new AutofillProfile(base::GenerateGUID(), "https://www.example.com");
|
| + test::SetProfileInfo(profile2, "Homer", "Jay", "Simpson",
|
| "homer.simpson@abc.com", "Fox", "1234 Other Street", "",
|
| "Springfield", "IL", "91601", "US", "12345678910");
|
| - profile2.set_use_count(7);
|
| + profile2->set_use_count(7);
|
|
|
| // Create a profile similar to profile1 which should be deduped.
|
| - AutofillProfile profile3(base::GenerateGUID(), "https://www.example.com");
|
| - test::SetProfileInfo(&profile3, "Homer", "Jay", "Simpson",
|
| + AutofillProfile* profile3 =
|
| + new AutofillProfile(base::GenerateGUID(), "https://www.example.com");
|
| + test::SetProfileInfo(profile3, "Homer", "Jay", "Simpson",
|
| "homer.simpson@abc.com", "", "742 Evergreen Terrace", "",
|
| "Springfield", "IL", "91601", "US", "12345678910");
|
| - profile3.set_use_count(5);
|
| + profile3->set_use_count(5);
|
|
|
| // Create another different profile that should not be deduped (different
|
| // name).
|
| - AutofillProfile profile4(base::GenerateGUID(), "https://www.example.com");
|
| - test::SetProfileInfo(&profile4, "Marjorie", "Jacqueline", "Simpson",
|
| + AutofillProfile* profile4 =
|
| + new AutofillProfile(base::GenerateGUID(), "https://www.example.com");
|
| + test::SetProfileInfo(profile4, "Marjorie", "Jacqueline", "Simpson",
|
| "homer.simpson@abc.com", "Fox", "742 Evergreen Terrace",
|
| "", "Springfield", "IL", "91601", "US", "12345678910");
|
| - profile4.set_use_count(3);
|
| + profile4->set_use_count(3);
|
|
|
| // Create another profile similar to profile1. Since that one has the lowest
|
| // frecency, the result of the merge should be in this profile at the end of
|
| // the test.
|
| - AutofillProfile profile5(base::GenerateGUID(), "https://www.example.com");
|
| - test::SetProfileInfo(&profile5, "Homer", "Jay", "Simpson",
|
| + AutofillProfile* profile5 =
|
| + new AutofillProfile(base::GenerateGUID(), "https://www.example.com");
|
| + test::SetProfileInfo(profile5, "Homer", "Jay", "Simpson",
|
| "homer.simpson@abc.com", "Fox", "742 Evergreen Terrace.",
|
| "", "Springfield", "IL", "91601", "US", "12345678910");
|
| - profile5.set_use_count(1);
|
| + profile5->set_use_count(1);
|
|
|
| // Add the profiles.
|
| - std::vector<AutofillProfile*> existing_profiles;
|
| - existing_profiles.push_back(&profile1);
|
| - existing_profiles.push_back(&profile2);
|
| - existing_profiles.push_back(&profile3);
|
| - existing_profiles.push_back(&profile4);
|
| - existing_profiles.push_back(&profile5);
|
| + std::vector<std::unique_ptr<AutofillProfile>> existing_profiles;
|
| + existing_profiles.push_back(base::WrapUnique(profile1));
|
| + existing_profiles.push_back(base::WrapUnique(profile2));
|
| + existing_profiles.push_back(base::WrapUnique(profile3));
|
| + existing_profiles.push_back(base::WrapUnique(profile4));
|
| + existing_profiles.push_back(base::WrapUnique(profile5));
|
|
|
| // Enable the profile cleanup.
|
| EnableAutofillProfileCleanup();
|
| @@ -4675,11 +4683,11 @@ TEST_F(PersonalDataManagerTest, DedupeProfiles_ProfilesToDelete) {
|
|
|
| // Profile1 should be deleted because it was sent as the profile to merge and
|
| // thus was merged into profile3 and then into profile5.
|
| - EXPECT_TRUE(profiles_to_delete.count(&profile1));
|
| + EXPECT_TRUE(profiles_to_delete.count(profile1));
|
|
|
| // Profile3 should be deleted because profile1 was merged into it and the
|
| // resulting profile was then merged into profile5.
|
| - EXPECT_TRUE(profiles_to_delete.count(&profile3));
|
| + EXPECT_TRUE(profiles_to_delete.count(profile3));
|
|
|
| // Only these two profiles should be deleted.
|
| EXPECT_EQ(2U, profiles_to_delete.size());
|
|
|