| Index: components/payments/core/profile_util_unittest.cc
|
| diff --git a/components/payments/core/profile_util_unittest.cc b/components/payments/core/profile_util_unittest.cc
|
| index 5ff1d7ec4e3d546fa2ca1cc63f451914cf7220ed..82ab63a09ef1b9dcb920b85b35b220b1fa340db2 100644
|
| --- a/components/payments/core/profile_util_unittest.cc
|
| +++ b/components/payments/core/profile_util_unittest.cc
|
| @@ -18,7 +18,6 @@
|
| using autofill::AutofillProfile;
|
|
|
| namespace payments {
|
| -namespace profile_util {
|
|
|
| constexpr uint32_t kRequestPayerName = 1 << 0;
|
| constexpr uint32_t kRequestPayerEmail = 1 << 1;
|
| @@ -57,20 +56,36 @@ AutofillProfile CreateProfileWithContactInfo(const char* name,
|
| return profile;
|
| }
|
|
|
| +AutofillProfile CreateProfileWithCompleteAddress(const char* name,
|
| + const char* phone) {
|
| + AutofillProfile profile(base::GenerateGUID(), "http://www.example.com/");
|
| + autofill::test::SetProfileInfo(&profile, name, "", "", "", "", "123 Fake St.",
|
| + "", "Fakesville", "MN", "54000", "US", phone);
|
| + return profile;
|
| +}
|
| +
|
| +AutofillProfile CreateProfileWithPartialAddress(const char* name,
|
| + const char* phone) {
|
| + AutofillProfile profile(base::GenerateGUID(), "http://www.example.com/");
|
| + autofill::test::SetProfileInfo(&profile, name, "", "", "", "", "123 Fake St.",
|
| + "", "", "", "54000", "", phone);
|
| + return profile;
|
| +}
|
| +
|
| TEST(PaymentRequestProfileUtilTest, FilterProfilesForContact) {
|
| // These profiles are subset/equal, so only the first complete one is
|
| // included.
|
| AutofillProfile exclude_1 =
|
| - CreateProfileWithContactInfo("Homer", "", "5551234567");
|
| + CreateProfileWithContactInfo("Homer", "", "6515553226");
|
|
|
| AutofillProfile exclude_2 =
|
| CreateProfileWithContactInfo("Homer", "homer@simpson.net", "");
|
|
|
| AutofillProfile include_1 =
|
| - CreateProfileWithContactInfo("Homer", "homer@simpson.net", "5551234567");
|
| + CreateProfileWithContactInfo("Homer", "homer@simpson.net", "6515553226");
|
|
|
| AutofillProfile exclude_3 =
|
| - CreateProfileWithContactInfo("Homer", "homer@simpson.net", "5551234567");
|
| + CreateProfileWithContactInfo("Homer", "homer@simpson.net", "6515553226");
|
|
|
| // This profile is different, so it should also be included. Since it is
|
| // less complete than |include_1|, it will appear after.
|
| @@ -82,15 +97,17 @@ TEST(PaymentRequestProfileUtilTest, FilterProfilesForContact) {
|
| // after |include_1| since order is preserved amongst profiles of equal
|
| // completeness.
|
| AutofillProfile include_3 = CreateProfileWithContactInfo(
|
| - "Bart", "eatmyshorts@simpson.net", "5551234567");
|
| + "Bart", "eatmyshorts@simpson.net", "6515553226");
|
|
|
| std::vector<AutofillProfile*> profiles = {&exclude_1, &exclude_2, &include_1,
|
| &exclude_3, &include_2, &include_3};
|
|
|
| MockPaymentOptionsProvider provider(kRequestPayerName | kRequestPayerEmail |
|
| kRequestPayerPhone);
|
| + PaymentsProfileComparator comp("en-US", provider);
|
| +
|
| std::vector<AutofillProfile*> filtered =
|
| - FilterProfilesForContact(profiles, "en-US", provider);
|
| + comp.FilterProfilesForContact(profiles);
|
|
|
| ASSERT_EQ(3u, filtered.size());
|
| EXPECT_EQ(&include_1, filtered[0]);
|
| @@ -101,8 +118,9 @@ TEST(PaymentRequestProfileUtilTest, FilterProfilesForContact) {
|
| // Under these rules, since all profiles have the same (or no) phone number,
|
| // we should only see the first profile with a phone number, |exclude_1|.
|
| MockPaymentOptionsProvider phone_only_provider(kRequestPayerPhone);
|
| + PaymentsProfileComparator phone_only_comp("en-US", phone_only_provider);
|
| std::vector<AutofillProfile*> filtered_phones =
|
| - FilterProfilesForContact(profiles, "en-US", phone_only_provider);
|
| + phone_only_comp.FilterProfilesForContact(profiles);
|
| ASSERT_EQ(1u, filtered_phones.size());
|
| EXPECT_EQ(&exclude_1, filtered_phones[0]);
|
| }
|
| @@ -113,17 +131,17 @@ TEST(PaymentRequestProfileUtilTest, IsContactEqualOrSuperset) {
|
| PaymentsProfileComparator comp("en-US", provider);
|
|
|
| AutofillProfile p1 =
|
| - CreateProfileWithContactInfo("Homer", "homer@simpson.net", "5551234567");
|
| + CreateProfileWithContactInfo("Homer", "homer@simpson.net", "6515553226");
|
|
|
| // Candidate subset profile is equal.
|
| AutofillProfile p2 =
|
| - CreateProfileWithContactInfo("Homer", "homer@simpson.net", "5551234567");
|
| + CreateProfileWithContactInfo("Homer", "homer@simpson.net", "6515553226");
|
| EXPECT_TRUE(comp.IsContactEqualOrSuperset(p1, p2));
|
| EXPECT_TRUE(comp.IsContactEqualOrSuperset(p2, p1));
|
|
|
| // Candidate subset profile has non-matching fields.
|
| AutofillProfile p3 = CreateProfileWithContactInfo(
|
| - "Homer", "homer@springfieldnuclear.gov", "5551234567");
|
| + "Homer", "homer@springfieldnuclear.gov", "6515553226");
|
| EXPECT_FALSE(comp.IsContactEqualOrSuperset(p1, p3));
|
| EXPECT_FALSE(comp.IsContactEqualOrSuperset(p3, p1));
|
|
|
| @@ -136,7 +154,7 @@ TEST(PaymentRequestProfileUtilTest, IsContactEqualOrSuperset) {
|
| // One field is common, but each has a field which the other is missing.
|
| AutofillProfile p5 =
|
| CreateProfileWithContactInfo("Homer", "homer@simpson.net", "");
|
| - AutofillProfile p6 = CreateProfileWithContactInfo("Homer", "", "5551234567");
|
| + AutofillProfile p6 = CreateProfileWithContactInfo("Homer", "", "6515553226");
|
| EXPECT_FALSE(comp.IsContactEqualOrSuperset(p5, p6));
|
| EXPECT_FALSE(comp.IsContactEqualOrSuperset(p6, p5));
|
| }
|
| @@ -147,22 +165,22 @@ TEST(PaymentRequestProfileUtilTest, IsContactEqualOrSuperset_WithFieldIgnored) {
|
| PaymentsProfileComparator comp("en-US", provider);
|
|
|
| AutofillProfile p1 =
|
| - CreateProfileWithContactInfo("Homer", "homer@simpson.net", "5551234567");
|
| + CreateProfileWithContactInfo("Homer", "homer@simpson.net", "6515553226");
|
|
|
| // Candidate subset profile is equal.
|
| AutofillProfile p2 =
|
| - CreateProfileWithContactInfo("Homer", "homer@simpson.net", "5551234567");
|
| + CreateProfileWithContactInfo("Homer", "homer@simpson.net", "6515553226");
|
| EXPECT_TRUE(comp.IsContactEqualOrSuperset(p1, p2));
|
| EXPECT_TRUE(comp.IsContactEqualOrSuperset(p2, p1));
|
|
|
| // Email fields don't match, but profiles are still equal.
|
| AutofillProfile p3 = CreateProfileWithContactInfo(
|
| - "Homer", "homer@springfieldnuclear.gov", "5551234567");
|
| + "Homer", "homer@springfieldnuclear.gov", "6515553226");
|
| EXPECT_TRUE(comp.IsContactEqualOrSuperset(p1, p3));
|
| EXPECT_TRUE(comp.IsContactEqualOrSuperset(p3, p1));
|
|
|
| // Profile without an email is mutual subset of profile with an email.
|
| - AutofillProfile p4 = CreateProfileWithContactInfo("Homer", "", "5551234567");
|
| + AutofillProfile p4 = CreateProfileWithContactInfo("Homer", "", "6515553226");
|
| EXPECT_TRUE(comp.IsContactEqualOrSuperset(p1, p4));
|
| EXPECT_TRUE(comp.IsContactEqualOrSuperset(p4, p1));
|
| }
|
| @@ -174,7 +192,7 @@ TEST(PaymentRequestProfileUtilTest, GetContactCompletenessScore) {
|
| // Two completeness points: One each for name and phone number, but not email
|
| // as it was not requested.
|
| AutofillProfile p1 =
|
| - CreateProfileWithContactInfo("Homer", "homer@simpson.net", "5551234567");
|
| + CreateProfileWithContactInfo("Homer", "homer@simpson.net", "6515553226");
|
| EXPECT_EQ(2, comp.GetContactCompletenessScore(&p1));
|
|
|
| // One completeness point for name, no points for phone number (missing) or
|
| @@ -199,7 +217,7 @@ TEST(PaymentRequestProfileUtilTest, IsContactInfoComplete) {
|
| // If name and email are present, return true regardless of the (ignored)
|
| // phone value.
|
| AutofillProfile p1 =
|
| - CreateProfileWithContactInfo("Homer", "homer@simpson.net", "5551234567");
|
| + CreateProfileWithContactInfo("Homer", "homer@simpson.net", "6515553226");
|
| AutofillProfile p2 =
|
| CreateProfileWithContactInfo("Homer", "homer@simpson.net", "");
|
|
|
| @@ -209,7 +227,7 @@ TEST(PaymentRequestProfileUtilTest, IsContactInfoComplete) {
|
| // If name is not present, return false regardless of the (ignored)
|
| // phone value.
|
| AutofillProfile p3 =
|
| - CreateProfileWithContactInfo("", "homer@simpson.net", "5551234567");
|
| + CreateProfileWithContactInfo("", "homer@simpson.net", "6515553226");
|
| AutofillProfile p4 =
|
| CreateProfileWithContactInfo("", "homer@simpson.net", "");
|
|
|
| @@ -227,5 +245,30 @@ TEST(PaymentRequestProfileUtilTest, IsContactInfoComplete) {
|
| EXPECT_TRUE(empty_comp.IsContactInfoComplete(nullptr));
|
| }
|
|
|
| -} // namespace profile_util
|
| +TEST(PaymentRequestProfileUtilTest, IsShippingComplete) {
|
| + MockPaymentOptionsProvider provider(0);
|
| + PaymentsProfileComparator comp("en-US", provider);
|
| +
|
| + // True if name, phone, and address are all populated.
|
| + AutofillProfile p1 = CreateProfileWithCompleteAddress("Homer", "6515553226");
|
| + EXPECT_TRUE(comp.IsShippingComplete(&p1));
|
| +
|
| + // False if address is partially populated.
|
| + AutofillProfile p2 = CreateProfileWithPartialAddress("Homer", "6515553226");
|
| + EXPECT_FALSE(comp.IsShippingComplete(&p2));
|
| +
|
| + // False if name isn't populated.
|
| + AutofillProfile p3 = CreateProfileWithCompleteAddress("", "6515553226");
|
| + EXPECT_FALSE(comp.IsShippingComplete(&p3));
|
| +
|
| + // False if phone isn't populated.
|
| + AutofillProfile p4 = CreateProfileWithCompleteAddress("Homer", "");
|
| + EXPECT_FALSE(comp.IsShippingComplete(&p4));
|
| +
|
| + // False if only contact info (no address fields) is populated.
|
| + AutofillProfile p5 =
|
| + CreateProfileWithContactInfo("Homer", "homer@simpson.net", "6515553226");
|
| + EXPECT_FALSE(comp.IsShippingComplete(&p5));
|
| +}
|
| +
|
| } // namespace payments
|
|
|