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

Unified Diff: components/autofill/core/browser/personal_data_manager_unittest.cc

Issue 964643003: Autofill - Don't save a credit card locally if it's already saved in Wallet. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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/core/browser/personal_data_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 6e4d1b0d25ce4e18185a38f3d5941ea31db79b8d..ddd48409d21461e85bbcf220c93754e6ecb84679 100644
--- a/components/autofill/core/browser/personal_data_manager_unittest.cc
+++ b/components/autofill/core/browser/personal_data_manager_unittest.cc
@@ -1643,6 +1643,70 @@ TEST_F(PersonalDataManagerTest, AggregateTwoDifferentCreditCards) {
ExpectSameElements(cards, personal_data_->GetCreditCards());
}
+TEST_F(PersonalDataManagerTest, AggregateCardsThatDuplicateServerCards) {
+ // Add server cards.
+ std::vector<CreditCard> server_cards;
+ server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "a123"));
+ test::SetCreditCardInfo(&server_cards.back(), "John Dillinger",
+ "1111" /* Visa */, "01", "2010");
+ server_cards.back().SetTypeForMaskedCard(kVisaCard);
+ server_cards.push_back(CreditCard(CreditCard::FULL_SERVER_CARD, "c789"));
+ test::SetCreditCardInfo(&server_cards.back(), "Clyde Barrow",
+ "347666888555" /* American Express */, "04", "2015");
+ autofill_table_->SetServerCreditCards(server_cards);
+
+ FormData form1;
+
+ // Type the same data as the masked card into a form.
+ FormFieldData field;
+ test::CreateTestFormField(
+ "Name on card:", "name_on_card", "John Dillinger", "text", &field);
+ form1.fields.push_back(field);
+ test::CreateTestFormField(
+ "Card Number:", "card_number", "4111111111111111", "text", &field);
+ form1.fields.push_back(field);
+ test::CreateTestFormField("Exp Month:", "exp_month", "01", "text", &field);
+ form1.fields.push_back(field);
+ test::CreateTestFormField("Exp Year:", "exp_year", "2010", "text", &field);
+ form1.fields.push_back(field);
+
+ // The card should be offered to be saved locally because it only matches the
+ // masked card.
+ FormStructure form_structure1(form1);
+ form_structure1.DetermineHeuristicTypes();
+ scoped_ptr<CreditCard> imported_credit_card;
+ EXPECT_TRUE(personal_data_->ImportFormData(form_structure1,
+ &imported_credit_card));
+ ASSERT_TRUE(imported_credit_card);
+ personal_data_->SaveImportedCreditCard(*imported_credit_card);
+
+ // Verify that the web database has been updated and the notification sent.
+ EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged())
+ .WillOnce(QuitMainMessageLoop());
+ base::MessageLoop::current()->Run();
+
+ // Type the same data as the unmasked card into a form.
+ FormData form2;
+ test::CreateTestFormField(
+ "Name on card:", "name_on_card", "Clyde Barrow", "text", &field);
+ form2.fields.push_back(field);
+ test::CreateTestFormField(
+ "Card Number:", "card_number", "347666888555", "text", &field);
+ form2.fields.push_back(field);
+ test::CreateTestFormField("Exp Month:", "exp_month", "04", "text", &field);
+ form2.fields.push_back(field);
+ test::CreateTestFormField("Exp Year:", "exp_year", "2015", "text", &field);
+ form2.fields.push_back(field);
+
+ // The card should not be offered to be saved locally because it only matches
+ // the masked card.
+ FormStructure form_structure2(form2);
+ form_structure2.DetermineHeuristicTypes();
+ EXPECT_FALSE(personal_data_->ImportFormData(form_structure2,
+ &imported_credit_card));
+ ASSERT_FALSE(imported_credit_card);
+}
+
TEST_F(PersonalDataManagerTest, AggregateInvalidCreditCard) {
FormData form1;
« no previous file with comments | « components/autofill/core/browser/personal_data_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698