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 <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 3084 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3095 EnableWalletCardImport(); | 3095 EnableWalletCardImport(); |
3096 | 3096 |
3097 std::vector<CreditCard> server_cards; | 3097 std::vector<CreditCard> server_cards; |
3098 server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "a123")); | 3098 server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "a123")); |
3099 test::SetCreditCardInfo(&server_cards.back(), "John Dillinger", | 3099 test::SetCreditCardInfo(&server_cards.back(), "John Dillinger", |
3100 "9012" /* Visa */, "01", "2010"); | 3100 "9012" /* Visa */, "01", "2010"); |
3101 server_cards.back().SetTypeForMaskedCard(kVisaCard); | 3101 server_cards.back().SetTypeForMaskedCard(kVisaCard); |
3102 | 3102 |
3103 server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "b456")); | 3103 server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "b456")); |
3104 test::SetCreditCardInfo(&server_cards.back(), "Bonnie Parker", | 3104 test::SetCreditCardInfo(&server_cards.back(), "Bonnie Parker", |
3105 "2109" /* Mastercard */, "12", "2012"); | 3105 "4444" /* Mastercard */, "12", "2012"); |
3106 server_cards.back().SetTypeForMaskedCard(kMasterCard); | 3106 server_cards.back().SetTypeForMaskedCard(kMasterCard); |
3107 | 3107 |
3108 server_cards.push_back(CreditCard(CreditCard::FULL_SERVER_CARD, "c789")); | 3108 server_cards.push_back(CreditCard(CreditCard::FULL_SERVER_CARD, "c789")); |
3109 test::SetCreditCardInfo(&server_cards.back(), "Clyde Barrow", | 3109 test::SetCreditCardInfo(&server_cards.back(), "Clyde Barrow", |
3110 "347666888555" /* American Express */, "04", "2015"); | 3110 "347666888555" /* American Express */, "04", "2015"); |
3111 | 3111 |
3112 test::SetServerCreditCards(autofill_table_, server_cards); | 3112 test::SetServerCreditCards(autofill_table_, server_cards); |
3113 personal_data_->Refresh(); | 3113 personal_data_->Refresh(); |
3114 | 3114 |
3115 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) | 3115 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) |
3116 .WillOnce(QuitMainMessageLoop()); | 3116 .WillOnce(QuitMainMessageLoop()); |
3117 base::MessageLoop::current()->Run(); | 3117 base::MessageLoop::current()->Run(); |
3118 | 3118 |
3119 ASSERT_EQ(3U, personal_data_->GetCreditCards().size()); | 3119 ASSERT_EQ(3U, personal_data_->GetCreditCards().size()); |
3120 // The GUIDs will be different, so just compare the data. | 3120 // The GUIDs will be different, so just compare the data. |
3121 for (size_t i = 0; i < 3; ++i) | 3121 for (size_t i = 0; i < 3; ++i) |
3122 EXPECT_EQ(0, server_cards[i].Compare(*personal_data_->GetCreditCards()[i])); | 3122 EXPECT_EQ(0, server_cards[i].Compare(*personal_data_->GetCreditCards()[i])); |
3123 | 3123 |
3124 CreditCard* unmasked_card = &server_cards.front(); | 3124 CreditCard* unmasked_card = &server_cards.front(); |
3125 unmasked_card->set_record_type(CreditCard::FULL_SERVER_CARD); | 3125 unmasked_card->set_record_type(CreditCard::FULL_SERVER_CARD); |
3126 unmasked_card->SetNumber(ASCIIToUTF16("423456789012")); | 3126 unmasked_card->SetNumber(ASCIIToUTF16("423456789012")); |
3127 EXPECT_NE(0, unmasked_card->Compare( | 3127 EXPECT_NE(0, unmasked_card->Compare( |
3128 *personal_data_->GetCreditCards().front())); | 3128 *personal_data_->GetCreditCards().front())); |
3129 personal_data_->UpdateServerCreditCard(*unmasked_card); | 3129 personal_data_->UpdateServerCreditCard(*unmasked_card); |
3130 | 3130 |
3131 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) | 3131 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) |
3132 .WillOnce(QuitMainMessageLoop()); | 3132 .WillOnce(QuitMainMessageLoop()); |
3133 base::MessageLoop::current()->Run(); | 3133 base::MessageLoop::current()->Run(); |
| 3134 ASSERT_EQ(3U, personal_data_->GetCreditCards().size()); |
3134 | 3135 |
3135 for (size_t i = 0; i < 3; ++i) | 3136 for (size_t i = 0; i < 3; ++i) |
3136 EXPECT_EQ(0, server_cards[i].Compare(*personal_data_->GetCreditCards()[i])); | 3137 EXPECT_EQ(0, server_cards[i].Compare(*personal_data_->GetCreditCards()[i])); |
3137 | 3138 |
3138 // For an unmasked card, usage data starts out as 1 and Now(). | 3139 // For an unmasked card, usage data starts out as 1 and Now(). |
3139 EXPECT_EQ(1U, personal_data_->GetCreditCards()[0]->use_count()); | 3140 EXPECT_EQ(1U, personal_data_->GetCreditCards()[0]->use_count()); |
3140 EXPECT_NE(base::Time(), personal_data_->GetCreditCards()[0]->use_date()); | 3141 EXPECT_NE(base::Time(), personal_data_->GetCreditCards()[0]->use_date()); |
3141 | 3142 |
3142 EXPECT_EQ(0U, personal_data_->GetCreditCards()[1]->use_count()); | 3143 EXPECT_EQ(0U, personal_data_->GetCreditCards()[1]->use_count()); |
3143 EXPECT_EQ(base::Time(), personal_data_->GetCreditCards()[1]->use_date()); | 3144 EXPECT_EQ(base::Time(), personal_data_->GetCreditCards()[1]->use_date()); |
3144 | 3145 |
3145 // Having unmasked this card, usage stats should be 1 and Now(). | 3146 // Having unmasked this card, usage stats should be 1 and Now(). |
3146 EXPECT_EQ(1U, personal_data_->GetCreditCards()[2]->use_count()); | 3147 EXPECT_EQ(1U, personal_data_->GetCreditCards()[2]->use_count()); |
3147 EXPECT_NE(base::Time(), personal_data_->GetCreditCards()[2]->use_date()); | 3148 EXPECT_NE(base::Time(), personal_data_->GetCreditCards()[2]->use_date()); |
3148 base::Time initial_use_date = personal_data_->GetCreditCards()[2]->use_date(); | 3149 base::Time initial_use_date = personal_data_->GetCreditCards()[2]->use_date(); |
3149 | 3150 |
3150 server_cards.back().set_guid(personal_data_->GetCreditCards()[2]->guid()); | 3151 server_cards.back().set_guid(personal_data_->GetCreditCards()[2]->guid()); |
3151 personal_data_->RecordUseOf(server_cards.back()); | 3152 personal_data_->RecordUseOf(server_cards.back()); |
3152 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) | 3153 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) |
3153 .WillOnce(QuitMainMessageLoop()); | 3154 .WillOnce(QuitMainMessageLoop()); |
3154 base::MessageLoop::current()->Run(); | 3155 base::MessageLoop::current()->Run(); |
| 3156 ASSERT_EQ(3U, personal_data_->GetCreditCards().size()); |
3155 | 3157 |
3156 EXPECT_EQ(1U, personal_data_->GetCreditCards()[0]->use_count()); | 3158 EXPECT_EQ(1U, personal_data_->GetCreditCards()[0]->use_count()); |
3157 EXPECT_NE(base::Time(), personal_data_->GetCreditCards()[0]->use_date()); | 3159 EXPECT_NE(base::Time(), personal_data_->GetCreditCards()[0]->use_date()); |
3158 | 3160 |
3159 EXPECT_EQ(0U, personal_data_->GetCreditCards()[1]->use_count()); | 3161 EXPECT_EQ(0U, personal_data_->GetCreditCards()[1]->use_count()); |
3160 EXPECT_EQ(base::Time(), personal_data_->GetCreditCards()[1]->use_date()); | 3162 EXPECT_EQ(base::Time(), personal_data_->GetCreditCards()[1]->use_date()); |
3161 | 3163 |
3162 EXPECT_EQ(2U, personal_data_->GetCreditCards()[2]->use_count()); | 3164 EXPECT_EQ(2U, personal_data_->GetCreditCards()[2]->use_count()); |
3163 EXPECT_NE(base::Time(), personal_data_->GetCreditCards()[2]->use_date()); | 3165 EXPECT_NE(base::Time(), personal_data_->GetCreditCards()[2]->use_date()); |
3164 // Time may or may not have elapsed between unmasking and RecordUseOf. | 3166 // Time may or may not have elapsed between unmasking and RecordUseOf. |
3165 EXPECT_LE(initial_use_date, personal_data_->GetCreditCards()[2]->use_date()); | 3167 EXPECT_LE(initial_use_date, personal_data_->GetCreditCards()[2]->use_date()); |
| 3168 |
| 3169 // Can record usage stats on masked cards. |
| 3170 server_cards[1].set_guid(personal_data_->GetCreditCards()[1]->guid()); |
| 3171 personal_data_->RecordUseOf(server_cards[1]); |
| 3172 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) |
| 3173 .WillOnce(QuitMainMessageLoop()); |
| 3174 base::MessageLoop::current()->Run(); |
| 3175 ASSERT_EQ(3U, personal_data_->GetCreditCards().size()); |
| 3176 EXPECT_EQ(1U, personal_data_->GetCreditCards()[1]->use_count()); |
| 3177 EXPECT_NE(base::Time(), personal_data_->GetCreditCards()[1]->use_date()); |
| 3178 |
| 3179 // Upgrading to unmasked retains the usage stats (and increments them). |
| 3180 CreditCard* unmasked_card2 = &server_cards[1]; |
| 3181 unmasked_card2->set_record_type(CreditCard::FULL_SERVER_CARD); |
| 3182 unmasked_card2->SetNumber(ASCIIToUTF16("5555555555554444")); |
| 3183 personal_data_->UpdateServerCreditCard(*unmasked_card2); |
| 3184 |
| 3185 server_cards[1].set_guid(personal_data_->GetCreditCards()[1]->guid()); |
| 3186 personal_data_->RecordUseOf(server_cards[1]); |
| 3187 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) |
| 3188 .WillOnce(QuitMainMessageLoop()); |
| 3189 base::MessageLoop::current()->Run(); |
| 3190 ASSERT_EQ(3U, personal_data_->GetCreditCards().size()); |
| 3191 EXPECT_EQ(2U, personal_data_->GetCreditCards()[1]->use_count()); |
| 3192 EXPECT_NE(base::Time(), personal_data_->GetCreditCards()[1]->use_date()); |
3166 } | 3193 } |
3167 | 3194 |
3168 TEST_F(PersonalDataManagerTest, ClearAllServerData) { | 3195 TEST_F(PersonalDataManagerTest, ClearAllServerData) { |
3169 // Add a server card. | 3196 // Add a server card. |
3170 std::vector<CreditCard> server_cards; | 3197 std::vector<CreditCard> server_cards; |
3171 server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "a123")); | 3198 server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "a123")); |
3172 test::SetCreditCardInfo(&server_cards.back(), "John Dillinger", | 3199 test::SetCreditCardInfo(&server_cards.back(), "John Dillinger", |
3173 "9012" /* Visa */, "01", "2010"); | 3200 "9012" /* Visa */, "01", "2010"); |
3174 server_cards.back().SetTypeForMaskedCard(kVisaCard); | 3201 server_cards.back().SetTypeForMaskedCard(kVisaCard); |
3175 test::SetServerCreditCards(autofill_table_, server_cards); | 3202 test::SetServerCreditCards(autofill_table_, server_cards); |
(...skipping 18 matching lines...) Expand all Loading... |
3194 | 3221 |
3195 personal_data_->ClearAllServerData(); | 3222 personal_data_->ClearAllServerData(); |
3196 | 3223 |
3197 // Reload the database, everything should be gone. | 3224 // Reload the database, everything should be gone. |
3198 ResetPersonalDataManager(USER_MODE_NORMAL); | 3225 ResetPersonalDataManager(USER_MODE_NORMAL); |
3199 EXPECT_TRUE(personal_data_->GetCreditCards().empty()); | 3226 EXPECT_TRUE(personal_data_->GetCreditCards().empty()); |
3200 EXPECT_TRUE(personal_data_->GetProfiles().empty()); | 3227 EXPECT_TRUE(personal_data_->GetProfiles().empty()); |
3201 } | 3228 } |
3202 | 3229 |
3203 } // namespace autofill | 3230 } // namespace autofill |
OLD | NEW |