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

Side by Side Diff: components/autofill/core/browser/personal_data_manager_unittest.cc

Issue 1042353003: Create syncable metadata table for Wallet credit cards and addresses. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: docs Created 5 years, 8 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
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 3084 matching lines...) Expand 10 before | Expand all | Expand 10 after
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[2];
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698