0

Update the value of LabelPieces for CreditCard

This CL updates the method of LabelPieces() in CreditCard class
to support new FOP display on settings page.

Bug: b:401602606
Change-Id: Iea554647613f6757d1113f9ddfb8304c62b2097c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6378663
Reviewed-by: Olivia Saul <jsaul@google.com>
Commit-Queue: Qihui Zhao <qihuizhao@google.com>
Cr-Commit-Position: refs/heads/main@{#1437947}
This commit is contained in:
Qihui Zhao
2025-03-25 22:49:29 -07:00
committed by Chromium LUCI CQ
parent 61612ad1cf
commit 6b068b163a
2 changed files with 44 additions and 0 deletions
components/autofill/core/browser/data_model/payments

@ -969,6 +969,16 @@ std::pair<std::u16string, std::u16string> CreditCard::LabelPieces() const {
return std::make_pair(name_on_card_, std::u16string());
}
if (base::FeatureList::IsEnabled(
features::kAutofillEnableNewFopDisplayDesktop)) {
if (CardIdentifierForAutofillDisplay().has_value()) {
return std::make_pair(CardIdentifierForAutofillDisplay().value(),
NetworkAndLastFourDigits(/*obfuscation_length=*/2));
}
return std::make_pair(NetworkAndLastFourDigits(/*obfuscation_length=*/2),
std::u16string());
}
return std::make_pair(CardNameAndLastFourDigits(), name_on_card_);
}

@ -1710,6 +1710,40 @@ TEST(CreditCardTest, IsDeletable) {
EXPECT_FALSE(card.IsDeletable());
}
TEST(CreditCardTest, LabelPieces_WithNickname) {
base::test::ScopedFeatureList feature_list;
feature_list.InitAndEnableFeature(
features::kAutofillEnableNewFopDisplayDesktop);
CreditCard card(base::Uuid::GenerateRandomV4().AsLowercaseString(),
"https://www.example.com/");
// Set the card as Mastercard.
test::SetCreditCardInfo(&card, "John Dillinger", "5105 1051 0510 5100", "01",
"2020", "1");
card.SetNickname(u"Nickname");
const std::u16string network_and_last_four =
UTF8ToUTF16(std::string("Mastercard ") +
test::ObfuscatedCardDigitsAsUTF8("5100", 2));
EXPECT_EQ(card.LabelPieces().first, u"Nickname");
EXPECT_EQ(card.LabelPieces().second, network_and_last_four);
}
TEST(CreditCardTest, LabelPieces_WithoutNickname) {
base::test::ScopedFeatureList feature_list;
feature_list.InitAndEnableFeature(
features::kAutofillEnableNewFopDisplayDesktop);
CreditCard card(base::Uuid::GenerateRandomV4().AsLowercaseString(),
"https://www.example.com/");
// Set the card as Mastercard.
test::SetCreditCardInfo(&card, "John Dillinger", "5105 1051 0510 5100", "01",
"2020", "1");
const std::u16string network_and_last_four =
UTF8ToUTF16(std::string("Mastercard ") +
test::ObfuscatedCardDigitsAsUTF8("5100", 2));
EXPECT_EQ(card.LabelPieces().first, network_and_last_four);
EXPECT_EQ(card.LabelPieces().second, u"");
}
struct CreditCardMatchingTypesCase {
CreditCardMatchingTypesCase(const char* value,
const char* card_exp_month,