Chromium Code Reviews| 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 c7d9219fb71fa7c3449485b25b1f54345ca5c979..be22c5a487b16b47e4fa1fb124611664c4f31b05 100644 |
| --- a/components/autofill/core/browser/personal_data_manager_unittest.cc |
| +++ b/components/autofill/core/browser/personal_data_manager_unittest.cc |
| @@ -231,7 +231,7 @@ class PersonalDataManagerTest : public testing::Test { |
| "https://www.example.com"); |
| test::SetCreditCardInfo(&credit_card0, "Clyde Barrow", |
| "347666888555" /* American Express */, "04", |
| - "2015"); |
| + "2099"); |
| credit_card0.set_use_count(3); |
| credit_card0.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(1)); |
| personal_data_->AddCreditCard(credit_card0); |
| @@ -242,7 +242,7 @@ class PersonalDataManagerTest : public testing::Test { |
| credit_card1.set_use_date(base::Time::Now() - |
| base::TimeDelta::FromDays(10)); |
| test::SetCreditCardInfo(&credit_card1, "John Dillinger", |
| - "423456789012" /* Visa */, "01", "2010"); |
| + "423456789012" /* Visa */, "01", "2100"); |
| personal_data_->AddCreditCard(credit_card1); |
| CreditCard credit_card2("002149C1-EE28-4213-A3B9-DA243FFF021B", |
| @@ -3307,7 +3307,7 @@ TEST_F(PersonalDataManagerTest, |
| std::vector<CreditCard> server_cards; |
| server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "b459")); |
| test::SetCreditCardInfo(&server_cards.back(), "Emmet Dalton", "2110", "12", |
| - "2012"); |
| + "2112"); |
| server_cards.back().set_use_count(2); |
| server_cards.back().set_use_date(base::Time::Now() - |
| base::TimeDelta::FromDays(1)); |
| @@ -3315,7 +3315,7 @@ TEST_F(PersonalDataManagerTest, |
| server_cards.push_back(CreditCard(CreditCard::FULL_SERVER_CARD, "b460")); |
| test::SetCreditCardInfo(&server_cards.back(), "Jesse James", "2109", "12", |
| - "2012"); |
| + "2112"); |
| server_cards.back().set_use_count(6); |
| server_cards.back().set_use_date(base::Time::Now() - |
| base::TimeDelta::FromDays(1)); |
| @@ -3340,6 +3340,86 @@ TEST_F(PersonalDataManagerTest, |
| EXPECT_EQ(ASCIIToUTF16("Bonnie Parker"), suggestions[4].value); |
| } |
| +// Test that an expired card gets suggested last, even if it has the highest |
| +// frecency score. |
| +TEST_F(PersonalDataManagerTest, GetCreditCardSuggestions_ExpiredCardIsLast) { |
| + ASSERT_EQ(0U, personal_data_->GetCreditCards().size()); |
| + |
| + // Add an often used expired card. |
| + CreditCard credit_card0("287151C8-6AB1-487C-9095-28E80BE5DA15", |
| + "https://www.example.com"); |
| + test::SetCreditCardInfo(&credit_card0, "Clyde Barrow", |
| + "347666888555" /* American Express */, "04", "1999"); |
| + credit_card0.set_use_count(300000); |
| + credit_card0.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(1)); |
| + personal_data_->AddCreditCard(credit_card0); |
| + |
| + // Add less used non expired card. |
| + CreditCard credit_card1("1141084B-72D7-4B73-90CF-3D6AC154673B", |
| + "https://www.example.com"); |
| + credit_card1.set_use_count(300); |
| + credit_card1.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(10)); |
| + test::SetCreditCardInfo(&credit_card1, "John Dillinger", |
| + "423456789012" /* Visa */, "01", "2100"); |
| + personal_data_->AddCreditCard(credit_card1); |
| + |
| + EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) |
| + .WillOnce(QuitMainMessageLoop()); |
| + base::MessageLoop::current()->Run(); |
| + |
| + ASSERT_EQ(2U, personal_data_->GetCreditCards().size()); |
| + |
| + std::vector<Suggestion> suggestions = |
| + personal_data_->GetCreditCardSuggestions( |
| + AutofillType(CREDIT_CARD_NAME_FULL), |
| + /* field_contents= */ base::string16()); |
| + ASSERT_EQ(2U, suggestions.size()); |
| + |
| + // The expired card is expected to be last. |
| + EXPECT_EQ(ASCIIToUTF16("John Dillinger"), suggestions[0].value); |
| + EXPECT_EQ(ASCIIToUTF16("Clyde Barrow"), suggestions[1].value); |
| +} |
| + |
| +// Test that expired cards are ordered by frecency. |
|
Mathieu
2016/04/07 16:57:54
Can we add a test where there is
- a non expired
sebsg
2016/04/07 18:26:06
Done.
|
| +TEST_F(PersonalDataManagerTest, |
| + GetCreditCardSuggestions_ExpiredCardsOrderedByFrecency) { |
| + ASSERT_EQ(0U, personal_data_->GetCreditCards().size()); |
| + |
| + // Add a recently used expired card. |
| + CreditCard credit_card0("287151C8-6AB1-487C-9095-28E80BE5DA15", |
| + "https://www.example.com"); |
| + test::SetCreditCardInfo(&credit_card0, "Clyde Barrow", |
| + "347666888555" /* American Express */, "04", "1999"); |
| + credit_card0.set_use_count(300); |
| + credit_card0.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(1)); |
| + personal_data_->AddCreditCard(credit_card0); |
| + |
| + // Add a less recently used expired card. |
| + CreditCard credit_card1("1141084B-72D7-4B73-90CF-3D6AC154673B", |
| + "https://www.example.com"); |
| + credit_card1.set_use_count(300); |
| + credit_card1.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(10)); |
| + test::SetCreditCardInfo(&credit_card1, "John Dillinger", |
| + "423456789012" /* Visa */, "01", "1998"); |
| + personal_data_->AddCreditCard(credit_card1); |
| + |
| + EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) |
| + .WillOnce(QuitMainMessageLoop()); |
| + base::MessageLoop::current()->Run(); |
| + |
| + ASSERT_EQ(2U, personal_data_->GetCreditCards().size()); |
| + |
| + std::vector<Suggestion> suggestions = |
| + personal_data_->GetCreditCardSuggestions( |
| + AutofillType(CREDIT_CARD_NAME_FULL), |
| + /* field_contents= */ base::string16()); |
| + ASSERT_EQ(2U, suggestions.size()); |
| + |
| + // The expired cards should be sorted by frecency |
| + EXPECT_EQ(ASCIIToUTF16("Clyde Barrow"), suggestions[0].value); |
| + EXPECT_EQ(ASCIIToUTF16("John Dillinger"), suggestions[1].value); |
| +} |
| + |
| // Test that a card that doesn't have a number is not shown in the suggestions |
| // when querying credit cards by their number. |
| TEST_F(PersonalDataManagerTest, GetCreditCardSuggestions_NumberMissing) { |
| @@ -3349,7 +3429,7 @@ TEST_F(PersonalDataManagerTest, GetCreditCardSuggestions_NumberMissing) { |
| CreditCard credit_card0("287151C8-6AB1-487C-9095-28E80BE5DA15", |
| "https://www.example.com"); |
| test::SetCreditCardInfo(&credit_card0, "Clyde Barrow", |
| - "347666888555" /* American Express */, "04", "2015"); |
| + "347666888555" /* American Express */, "04", "2099"); |
| credit_card0.set_use_count(3); |
| credit_card0.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(1)); |
| personal_data_->AddCreditCard(credit_card0); |
| @@ -3358,7 +3438,7 @@ TEST_F(PersonalDataManagerTest, GetCreditCardSuggestions_NumberMissing) { |
| "https://www.example.com"); |
| credit_card1.set_use_count(300); |
| credit_card1.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(10)); |
| - test::SetCreditCardInfo(&credit_card1, "John Dillinger", "", "01", "2010"); |
| + test::SetCreditCardInfo(&credit_card1, "John Dillinger", "", "01", "2110"); |
| personal_data_->AddCreditCard(credit_card1); |
| EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) |
| @@ -3377,7 +3457,7 @@ TEST_F(PersonalDataManagerTest, GetCreditCardSuggestions_NumberMissing) { |
| EXPECT_EQ(UTF8ToUTF16("Amex\xC2\xA0\xE2\x8B\xAF" |
| "8555"), |
| suggestions[0].value); |
| - EXPECT_EQ(ASCIIToUTF16("04/15"), suggestions[0].label); |
| + EXPECT_EQ(ASCIIToUTF16("04/99"), suggestions[0].label); |
| } |
| // Tests the suggestions of duplicate local and server credit cards. |
| @@ -3393,7 +3473,7 @@ TEST_F(PersonalDataManagerTest, GetCreditCardSuggestions_ServerDuplicates) { |
| // suggestions since the locally saved card takes precedence. |
| server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "a123")); |
| test::SetCreditCardInfo(&server_cards.back(), "John Dillinger", |
| - "9012" /* Visa */, "01", "2010"); |
| + "9012" /* Visa */, "01", "2100"); |
| server_cards.back().set_use_count(2); |
| server_cards.back().set_use_date(base::Time::Now() - |
| base::TimeDelta::FromDays(15)); |
| @@ -3414,7 +3494,7 @@ TEST_F(PersonalDataManagerTest, GetCreditCardSuggestions_ServerDuplicates) { |
| // precedence over local cards. |
| server_cards.push_back(CreditCard(CreditCard::FULL_SERVER_CARD, "c789")); |
| test::SetCreditCardInfo(&server_cards.back(), "Clyde Barrow", |
| - "347666888555" /* American Express */, "04", "2015"); |
| + "347666888555" /* American Express */, "04", "2099"); |
| server_cards.back().set_use_count(1); |
| server_cards.back().set_use_date(base::Time::Now() - |
| base::TimeDelta::FromDays(15)); |
| @@ -3464,7 +3544,7 @@ TEST_F(PersonalDataManagerTest, |
| // the local card should appear in the suggestions. |
| server_cards.push_back(CreditCard(CreditCard::FULL_SERVER_CARD, "c789")); |
| test::SetCreditCardInfo(&server_cards.back(), "Clyde Barrow", |
| - "347666888555" /* American Express */, "04", "2015"); |
| + "347666888555" /* American Express */, "04", "2099"); |
| test::SetServerCreditCards(autofill_table_, server_cards); |
| personal_data_->Refresh(); |