| OLD | NEW |
| 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 "components/autofill/core/browser/personal_data_manager.h" | 5 #include "components/autofill/core/browser/personal_data_manager.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 3575 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3586 suggestions = personal_data_->GetCreditCardSuggestions( | 3586 suggestions = personal_data_->GetCreditCardSuggestions( |
| 3587 AutofillType(CREDIT_CARD_NAME_FULL), | 3587 AutofillType(CREDIT_CARD_NAME_FULL), |
| 3588 /* field_contents= */ base::string16()); | 3588 /* field_contents= */ base::string16()); |
| 3589 ASSERT_EQ(3U, suggestions.size()); | 3589 ASSERT_EQ(3U, suggestions.size()); |
| 3590 } | 3590 } |
| 3591 | 3591 |
| 3592 // Tests that only the full server card is kept when deduping with a local | 3592 // Tests that only the full server card is kept when deduping with a local |
| 3593 // duplicate of it. | 3593 // duplicate of it. |
| 3594 TEST_F(PersonalDataManagerTest, | 3594 TEST_F(PersonalDataManagerTest, |
| 3595 DedupeCreditCardToSuggest_FullServerShadowsLocal) { | 3595 DedupeCreditCardToSuggest_FullServerShadowsLocal) { |
| 3596 std::list<const CreditCard*> credit_cards; | 3596 std::list<CreditCard*> credit_cards; |
| 3597 | 3597 |
| 3598 // Create 3 different local credit cards. | 3598 // Create 3 different local credit cards. |
| 3599 CreditCard local_card("287151C8-6AB1-487C-9095-28E80BE5DA15", | 3599 CreditCard local_card("287151C8-6AB1-487C-9095-28E80BE5DA15", |
| 3600 "https://www.example.com"); | 3600 "https://www.example.com"); |
| 3601 test::SetCreditCardInfo(&local_card, "Homer Simpson", | 3601 test::SetCreditCardInfo(&local_card, "Homer Simpson", |
| 3602 "423456789012" /* Visa */, "01", "2999"); | 3602 "423456789012" /* Visa */, "01", "2999"); |
| 3603 local_card.set_use_count(3); | 3603 local_card.set_use_count(3); |
| 3604 local_card.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(1)); | 3604 local_card.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(1)); |
| 3605 credit_cards.push_back(&local_card); | 3605 credit_cards.push_back(&local_card); |
| 3606 | 3606 |
| 3607 // Create a full server card that is a duplicate of one of the local cards. | 3607 // Create a full server card that is a duplicate of one of the local cards. |
| 3608 CreditCard full_server_card(CreditCard::FULL_SERVER_CARD, "c789"); | 3608 CreditCard full_server_card(CreditCard::FULL_SERVER_CARD, "c789"); |
| 3609 test::SetCreditCardInfo(&full_server_card, "Homer Simpson", | 3609 test::SetCreditCardInfo(&full_server_card, "Homer Simpson", |
| 3610 "423456789012" /* Visa */, "01", "2999"); | 3610 "423456789012" /* Visa */, "01", "2999"); |
| 3611 full_server_card.set_use_count(1); | 3611 full_server_card.set_use_count(1); |
| 3612 full_server_card.set_use_date(base::Time::Now() - | 3612 full_server_card.set_use_date(base::Time::Now() - |
| 3613 base::TimeDelta::FromDays(15)); | 3613 base::TimeDelta::FromDays(15)); |
| 3614 credit_cards.push_back(&full_server_card); | 3614 credit_cards.push_back(&full_server_card); |
| 3615 | 3615 |
| 3616 PersonalDataManager::DedupeCreditCardToSuggest(&credit_cards); | 3616 PersonalDataManager::DedupeCreditCardToSuggest(&credit_cards); |
| 3617 ASSERT_EQ(1U, credit_cards.size()); | 3617 ASSERT_EQ(1U, credit_cards.size()); |
| 3618 | 3618 |
| 3619 const CreditCard* deduped_card(credit_cards.front()); | 3619 const CreditCard* deduped_card(credit_cards.front()); |
| 3620 EXPECT_TRUE(*deduped_card == full_server_card); | 3620 EXPECT_TRUE(*deduped_card == full_server_card); |
| 3621 } | 3621 } |
| 3622 | 3622 |
| 3623 // Tests that only the local card is kept when deduping with a masked server | 3623 // Tests that only the local card is kept when deduping with a masked server |
| 3624 // duplicate of it. | 3624 // duplicate of it. |
| 3625 TEST_F(PersonalDataManagerTest, DedupeCreditCardToSuggest_LocalShadowsMasked) { | 3625 TEST_F(PersonalDataManagerTest, DedupeCreditCardToSuggest_LocalShadowsMasked) { |
| 3626 std::list<const CreditCard*> credit_cards; | 3626 std::list<CreditCard*> credit_cards; |
| 3627 | 3627 |
| 3628 CreditCard local_card("1141084B-72D7-4B73-90CF-3D6AC154673B", | 3628 CreditCard local_card("1141084B-72D7-4B73-90CF-3D6AC154673B", |
| 3629 "https://www.example.com"); | 3629 "https://www.example.com"); |
| 3630 local_card.set_use_count(300); | 3630 local_card.set_use_count(300); |
| 3631 local_card.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(10)); | 3631 local_card.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(10)); |
| 3632 test::SetCreditCardInfo(&local_card, "Homer Simpson", | 3632 test::SetCreditCardInfo(&local_card, "Homer Simpson", |
| 3633 "423456789012" /* Visa */, "01", "2999"); | 3633 "423456789012" /* Visa */, "01", "2999"); |
| 3634 credit_cards.push_back(&local_card); | 3634 credit_cards.push_back(&local_card); |
| 3635 | 3635 |
| 3636 // Create a masked server card that is a duplicate of a local card. | 3636 // Create a masked server card that is a duplicate of a local card. |
| 3637 CreditCard masked_card(CreditCard::MASKED_SERVER_CARD, "a123"); | 3637 CreditCard masked_card(CreditCard::MASKED_SERVER_CARD, "a123"); |
| 3638 test::SetCreditCardInfo(&masked_card, "Homer Simpson", "9012" /* Visa */, | 3638 test::SetCreditCardInfo(&masked_card, "Homer Simpson", "9012" /* Visa */, |
| 3639 "01", "2999"); | 3639 "01", "2999"); |
| 3640 masked_card.set_use_count(2); | 3640 masked_card.set_use_count(2); |
| 3641 masked_card.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(15)); | 3641 masked_card.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(15)); |
| 3642 masked_card.SetTypeForMaskedCard(kVisaCard); | 3642 masked_card.SetTypeForMaskedCard(kVisaCard); |
| 3643 credit_cards.push_back(&masked_card); | 3643 credit_cards.push_back(&masked_card); |
| 3644 | 3644 |
| 3645 PersonalDataManager::DedupeCreditCardToSuggest(&credit_cards); | 3645 PersonalDataManager::DedupeCreditCardToSuggest(&credit_cards); |
| 3646 ASSERT_EQ(1U, credit_cards.size()); | 3646 ASSERT_EQ(1U, credit_cards.size()); |
| 3647 | 3647 |
| 3648 const CreditCard* deduped_card(credit_cards.front()); | 3648 const CreditCard* deduped_card(credit_cards.front()); |
| 3649 EXPECT_TRUE(*deduped_card == local_card); | 3649 EXPECT_TRUE(*deduped_card == local_card); |
| 3650 } | 3650 } |
| 3651 | 3651 |
| 3652 // Tests that identical full server and masked credit cards are not deduped. | 3652 // Tests that identical full server and masked credit cards are not deduped. |
| 3653 TEST_F(PersonalDataManagerTest, DedupeCreditCardToSuggest_FullServerAndMasked) { | 3653 TEST_F(PersonalDataManagerTest, DedupeCreditCardToSuggest_FullServerAndMasked) { |
| 3654 std::list<const CreditCard*> credit_cards; | 3654 std::list<CreditCard*> credit_cards; |
| 3655 | 3655 |
| 3656 // Create a full server card that is a duplicate of one of the local cards. | 3656 // Create a full server card that is a duplicate of one of the local cards. |
| 3657 CreditCard full_server_card(CreditCard::FULL_SERVER_CARD, "c789"); | 3657 CreditCard full_server_card(CreditCard::FULL_SERVER_CARD, "c789"); |
| 3658 test::SetCreditCardInfo(&full_server_card, "Homer Simpson", | 3658 test::SetCreditCardInfo(&full_server_card, "Homer Simpson", |
| 3659 "423456789012" /* Visa */, "01", "2999"); | 3659 "423456789012" /* Visa */, "01", "2999"); |
| 3660 full_server_card.set_use_count(1); | 3660 full_server_card.set_use_count(1); |
| 3661 full_server_card.set_use_date(base::Time::Now() - | 3661 full_server_card.set_use_date(base::Time::Now() - |
| 3662 base::TimeDelta::FromDays(15)); | 3662 base::TimeDelta::FromDays(15)); |
| 3663 credit_cards.push_back(&full_server_card); | 3663 credit_cards.push_back(&full_server_card); |
| 3664 | 3664 |
| 3665 // Create a masked server card that is a duplicate of a local card. | 3665 // Create a masked server card that is a duplicate of a local card. |
| 3666 CreditCard masked_card(CreditCard::MASKED_SERVER_CARD, "a123"); | 3666 CreditCard masked_card(CreditCard::MASKED_SERVER_CARD, "a123"); |
| 3667 test::SetCreditCardInfo(&masked_card, "Homer Simpson", "9012" /* Visa */, | 3667 test::SetCreditCardInfo(&masked_card, "Homer Simpson", "9012" /* Visa */, |
| 3668 "01", "2999"); | 3668 "01", "2999"); |
| 3669 masked_card.set_use_count(2); | 3669 masked_card.set_use_count(2); |
| 3670 masked_card.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(15)); | 3670 masked_card.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(15)); |
| 3671 masked_card.SetTypeForMaskedCard(kVisaCard); | 3671 masked_card.SetTypeForMaskedCard(kVisaCard); |
| 3672 credit_cards.push_back(&masked_card); | 3672 credit_cards.push_back(&masked_card); |
| 3673 | 3673 |
| 3674 PersonalDataManager::DedupeCreditCardToSuggest(&credit_cards); | 3674 PersonalDataManager::DedupeCreditCardToSuggest(&credit_cards); |
| 3675 EXPECT_EQ(2U, credit_cards.size()); | 3675 EXPECT_EQ(2U, credit_cards.size()); |
| 3676 } | 3676 } |
| 3677 | 3677 |
| 3678 // Tests that slightly different local, full server, and masked credit cards are | 3678 // Tests that slightly different local, full server, and masked credit cards are |
| 3679 // not deduped. | 3679 // not deduped. |
| 3680 TEST_F(PersonalDataManagerTest, DedupeCreditCardToSuggest_DifferentCards) { | 3680 TEST_F(PersonalDataManagerTest, DedupeCreditCardToSuggest_DifferentCards) { |
| 3681 std::list<const CreditCard*> credit_cards; | 3681 std::list<CreditCard*> credit_cards; |
| 3682 | 3682 |
| 3683 CreditCard credit_card2("002149C1-EE28-4213-A3B9-DA243FFF021B", | 3683 CreditCard credit_card2("002149C1-EE28-4213-A3B9-DA243FFF021B", |
| 3684 "https://www.example.com"); | 3684 "https://www.example.com"); |
| 3685 credit_card2.set_use_count(1); | 3685 credit_card2.set_use_count(1); |
| 3686 credit_card2.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(1)); | 3686 credit_card2.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(1)); |
| 3687 test::SetCreditCardInfo(&credit_card2, "Homer Simpson", | 3687 test::SetCreditCardInfo(&credit_card2, "Homer Simpson", |
| 3688 "518765432109" /* Mastercard */, "", ""); | 3688 "518765432109" /* Mastercard */, "", ""); |
| 3689 credit_cards.push_back(&credit_card2); | 3689 credit_cards.push_back(&credit_card2); |
| 3690 | 3690 |
| 3691 // Create a masked server card that is slightly different of the local card. | 3691 // Create a masked server card that is slightly different of the local card. |
| (...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4360 EXPECT_EQ(5U, profile.use_count()); | 4360 EXPECT_EQ(5U, profile.use_count()); |
| 4361 // The use date and modification dates should have been set to less than 500 | 4361 // The use date and modification dates should have been set to less than 500 |
| 4362 // milliseconds ago. | 4362 // milliseconds ago. |
| 4363 EXPECT_GT(base::TimeDelta::FromMilliseconds(500), | 4363 EXPECT_GT(base::TimeDelta::FromMilliseconds(500), |
| 4364 base::Time::Now() - profile.use_date()); | 4364 base::Time::Now() - profile.use_date()); |
| 4365 EXPECT_GT(base::TimeDelta::FromMilliseconds(500), | 4365 EXPECT_GT(base::TimeDelta::FromMilliseconds(500), |
| 4366 base::Time::Now() - profile.modification_date()); | 4366 base::Time::Now() - profile.modification_date()); |
| 4367 } | 4367 } |
| 4368 | 4368 |
| 4369 } // namespace autofill | 4369 } // namespace autofill |
| OLD | NEW |