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..1388d3f449ef874b3e097dbdf907bf312c709c4f 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,36 @@ TEST(PaymentRequestProfileUtilTest, IsContactInfoComplete) { |
EXPECT_TRUE(empty_comp.IsContactInfoComplete(nullptr)); |
} |
-} // namespace profile_util |
+TEST(PaymentRequestProfileUtilTest, IsShippingComplete) { |
+ MockPaymentOptionsProvider provider(kRequestShipping); |
+ 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)); |
+ |
+ MockPaymentOptionsProvider provider_no_shipping(0); |
+ PaymentsProfileComparator comp_no_shipping("en-US", provider_no_shipping); |
+ // nullptr is handled correctly: false if shipping requested, true if not. |
+ EXPECT_FALSE(comp.IsShippingComplete(nullptr)); |
+ EXPECT_TRUE(comp_no_shipping.IsShippingComplete(nullptr)); |
+} |
+ |
} // namespace payments |