Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(49)

Unified Diff: components/autofill/browser/credit_card_unittest.cc

Issue 16034018: [Autofill] Support "importing" verified profiles and credit cards. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Improve variable name Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/autofill/browser/credit_card.cc ('k') | components/autofill/browser/personal_data_manager.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/autofill/browser/credit_card_unittest.cc
diff --git a/components/autofill/browser/credit_card_unittest.cc b/components/autofill/browser/credit_card_unittest.cc
index 6d78f336a6a3c65574285b3f39bfc69fb1957769..b67ff3cbac84f1be499b5930bf0086966e0a5ee8 100644
--- a/components/autofill/browser/credit_card_unittest.cc
+++ b/components/autofill/browser/credit_card_unittest.cc
@@ -155,6 +155,79 @@ TEST(CreditCardTest, Compare) {
EXPECT_LT(0, b.Compare(a));
}
+TEST(CreditCardTest, UpdateFromImportedCard) {
+ CreditCard original_card(base::GenerateGUID(), "https://www.example.com");
+ test::SetCreditCardInfo(
+ &original_card, "John Dillinger", "123456789012", "09", "2017");
+
+ CreditCard a = original_card;
+
+ // The new card has a different name, expiration date, and origin.
+ CreditCard b = a;
+ b.set_guid(base::GenerateGUID());
+ b.set_origin("https://www.example.org");
+ b.SetRawInfo(CREDIT_CARD_NAME, ASCIIToUTF16("J. Dillinger"));
+ b.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("08"));
+ b.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2019"));
+
+ EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US"));
+ EXPECT_EQ("https://www.example.org", a.origin());
+ EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME));
+ EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH));
+ EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR));
+
+ // Try again, but with no name set for |b|.
+ a = original_card;
+ b.SetRawInfo(CREDIT_CARD_NAME, base::string16());
+
+ EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US"));
+ EXPECT_EQ("https://www.example.org", a.origin());
+ EXPECT_EQ(ASCIIToUTF16("John Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME));
+ EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH));
+ EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR));
+
+ // Try again, but with only the original card having a verified origin.
+ // |a| should be unchanged.
+ a = original_card;
+ a.set_origin("Chrome settings");
+ b.SetRawInfo(CREDIT_CARD_NAME, ASCIIToUTF16("J. Dillinger"));
+
+ EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US"));
+ EXPECT_EQ("Chrome settings", a.origin());
+ EXPECT_EQ(ASCIIToUTF16("John Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME));
+ EXPECT_EQ(ASCIIToUTF16("09"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH));
+ EXPECT_EQ(ASCIIToUTF16("2017"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR));
+
+ // Try again, but with only the new card having a verified origin.
+ a = original_card;
+ b.set_origin("Chrome settings");
+
+ EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US"));
+ EXPECT_EQ("Chrome settings", a.origin());
+ EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME));
+ EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH));
+ EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR));
+
+ // Try again, with both cards having a verified origin.
+ a = original_card;
+ a.set_origin("Chrome Autofill dialog");
+ b.set_origin("Chrome settings");
+
+ EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US"));
+ EXPECT_EQ("Chrome settings", a.origin());
+ EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME));
+ EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH));
+ EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR));
+
+ // Try again, but with |b| having a different card number.
+ // |a| should be unchanged.
+ a = original_card;
+ b.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("4111111111111111"));
+
+ EXPECT_FALSE(a.UpdateFromImportedCard(b, "en-US"));
+ EXPECT_EQ(original_card, a);
+}
+
TEST(CreditCardTest, IsComplete) {
CreditCard card(base::GenerateGUID(), "https://www.example.com/");
EXPECT_FALSE(card.IsComplete());
« no previous file with comments | « components/autofill/browser/credit_card.cc ('k') | components/autofill/browser/personal_data_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698