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<CreditCard*> credit_cards; | 3596 std::list<const 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<CreditCard*> credit_cards; | 3626 std::list<const 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<CreditCard*> credit_cards; | 3654 std::list<const 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<CreditCard*> credit_cards; | 3681 std::list<const 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 |