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

Side by Side 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, 9 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 unified diff | Download patch
« no previous file with comments | « components/autofill/core/browser/personal_data_manager.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <algorithm> 5 #include <algorithm>
6 #include <string> 6 #include <string>
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 1625 matching lines...) Expand 10 before | Expand all | Expand 10 after
1636 base::MessageLoop::current()->Run(); 1636 base::MessageLoop::current()->Run();
1637 1637
1638 CreditCard expected2(base::GenerateGUID(), "https://www.example.com"); 1638 CreditCard expected2(base::GenerateGUID(), "https://www.example.com");
1639 test::SetCreditCardInfo(&expected2,"", "5500000000000004", "02", "2012"); 1639 test::SetCreditCardInfo(&expected2,"", "5500000000000004", "02", "2012");
1640 std::vector<CreditCard*> cards; 1640 std::vector<CreditCard*> cards;
1641 cards.push_back(&expected); 1641 cards.push_back(&expected);
1642 cards.push_back(&expected2); 1642 cards.push_back(&expected2);
1643 ExpectSameElements(cards, personal_data_->GetCreditCards()); 1643 ExpectSameElements(cards, personal_data_->GetCreditCards());
1644 } 1644 }
1645 1645
1646 TEST_F(PersonalDataManagerTest, AggregateCardsThatDuplicateServerCards) {
1647 // Add server cards.
1648 std::vector<CreditCard> server_cards;
1649 server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "a123"));
1650 test::SetCreditCardInfo(&server_cards.back(), "John Dillinger",
1651 "1111" /* Visa */, "01", "2010");
1652 server_cards.back().SetTypeForMaskedCard(kVisaCard);
1653 server_cards.push_back(CreditCard(CreditCard::FULL_SERVER_CARD, "c789"));
1654 test::SetCreditCardInfo(&server_cards.back(), "Clyde Barrow",
1655 "347666888555" /* American Express */, "04", "2015");
1656 autofill_table_->SetServerCreditCards(server_cards);
1657
1658 FormData form1;
1659
1660 // Type the same data as the masked card into a form.
1661 FormFieldData field;
1662 test::CreateTestFormField(
1663 "Name on card:", "name_on_card", "John Dillinger", "text", &field);
1664 form1.fields.push_back(field);
1665 test::CreateTestFormField(
1666 "Card Number:", "card_number", "4111111111111111", "text", &field);
1667 form1.fields.push_back(field);
1668 test::CreateTestFormField("Exp Month:", "exp_month", "01", "text", &field);
1669 form1.fields.push_back(field);
1670 test::CreateTestFormField("Exp Year:", "exp_year", "2010", "text", &field);
1671 form1.fields.push_back(field);
1672
1673 // The card should be offered to be saved locally because it only matches the
1674 // masked card.
1675 FormStructure form_structure1(form1);
1676 form_structure1.DetermineHeuristicTypes();
1677 scoped_ptr<CreditCard> imported_credit_card;
1678 EXPECT_TRUE(personal_data_->ImportFormData(form_structure1,
1679 &imported_credit_card));
1680 ASSERT_TRUE(imported_credit_card);
1681 personal_data_->SaveImportedCreditCard(*imported_credit_card);
1682
1683 // Verify that the web database has been updated and the notification sent.
1684 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged())
1685 .WillOnce(QuitMainMessageLoop());
1686 base::MessageLoop::current()->Run();
1687
1688 // Type the same data as the unmasked card into a form.
1689 FormData form2;
1690 test::CreateTestFormField(
1691 "Name on card:", "name_on_card", "Clyde Barrow", "text", &field);
1692 form2.fields.push_back(field);
1693 test::CreateTestFormField(
1694 "Card Number:", "card_number", "347666888555", "text", &field);
1695 form2.fields.push_back(field);
1696 test::CreateTestFormField("Exp Month:", "exp_month", "04", "text", &field);
1697 form2.fields.push_back(field);
1698 test::CreateTestFormField("Exp Year:", "exp_year", "2015", "text", &field);
1699 form2.fields.push_back(field);
1700
1701 // The card should not be offered to be saved locally because it only matches
1702 // the masked card.
1703 FormStructure form_structure2(form2);
1704 form_structure2.DetermineHeuristicTypes();
1705 EXPECT_FALSE(personal_data_->ImportFormData(form_structure2,
1706 &imported_credit_card));
1707 ASSERT_FALSE(imported_credit_card);
1708 }
1709
1646 TEST_F(PersonalDataManagerTest, AggregateInvalidCreditCard) { 1710 TEST_F(PersonalDataManagerTest, AggregateInvalidCreditCard) {
1647 FormData form1; 1711 FormData form1;
1648 1712
1649 // Start with a single valid credit card form. 1713 // Start with a single valid credit card form.
1650 FormFieldData field; 1714 FormFieldData field;
1651 test::CreateTestFormField( 1715 test::CreateTestFormField(
1652 "Name on card:", "name_on_card", "Biggie Smalls", "text", &field); 1716 "Name on card:", "name_on_card", "Biggie Smalls", "text", &field);
1653 form1.fields.push_back(field); 1717 form1.fields.push_back(field);
1654 test::CreateTestFormField( 1718 test::CreateTestFormField(
1655 "Card Number:", "card_number", "4111-1111-1111-1111", "text", &field); 1719 "Card Number:", "card_number", "4111-1111-1111-1111", "text", &field);
(...skipping 1332 matching lines...) Expand 10 before | Expand all | Expand 10 after
2988 EXPECT_NE(base::Time(), personal_data_->GetCreditCards()[0]->use_date()); 3052 EXPECT_NE(base::Time(), personal_data_->GetCreditCards()[0]->use_date());
2989 3053
2990 EXPECT_EQ(0U, personal_data_->GetCreditCards()[1]->use_count()); 3054 EXPECT_EQ(0U, personal_data_->GetCreditCards()[1]->use_count());
2991 EXPECT_EQ(base::Time(), personal_data_->GetCreditCards()[1]->use_date()); 3055 EXPECT_EQ(base::Time(), personal_data_->GetCreditCards()[1]->use_date());
2992 3056
2993 EXPECT_EQ(1U, personal_data_->GetCreditCards()[2]->use_count()); 3057 EXPECT_EQ(1U, personal_data_->GetCreditCards()[2]->use_count());
2994 EXPECT_NE(base::Time(), personal_data_->GetCreditCards()[2]->use_date()); 3058 EXPECT_NE(base::Time(), personal_data_->GetCreditCards()[2]->use_date());
2995 } 3059 }
2996 3060
2997 } // namespace autofill 3061 } // namespace autofill
OLDNEW
« 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