Chromium Code Reviews| 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 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 224 // different: two are from different companies and the third doesn't have a | 224 // different: two are from different companies and the third doesn't have a |
| 225 // number. All three have different owners and credit card number. This allows | 225 // number. All three have different owners and credit card number. This allows |
| 226 // to test the suggestions based on name as well as on credit card number. | 226 // to test the suggestions based on name as well as on credit card number. |
| 227 void SetupReferenceLocalCreditCards() { | 227 void SetupReferenceLocalCreditCards() { |
| 228 ASSERT_EQ(0U, personal_data_->GetCreditCards().size()); | 228 ASSERT_EQ(0U, personal_data_->GetCreditCards().size()); |
| 229 | 229 |
| 230 CreditCard credit_card0("287151C8-6AB1-487C-9095-28E80BE5DA15", | 230 CreditCard credit_card0("287151C8-6AB1-487C-9095-28E80BE5DA15", |
| 231 "https://www.example.com"); | 231 "https://www.example.com"); |
| 232 test::SetCreditCardInfo(&credit_card0, "Clyde Barrow", | 232 test::SetCreditCardInfo(&credit_card0, "Clyde Barrow", |
| 233 "347666888555" /* American Express */, "04", | 233 "347666888555" /* American Express */, "04", |
| 234 "2015"); | 234 "2099"); |
| 235 credit_card0.set_use_count(3); | 235 credit_card0.set_use_count(3); |
| 236 credit_card0.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(1)); | 236 credit_card0.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(1)); |
| 237 personal_data_->AddCreditCard(credit_card0); | 237 personal_data_->AddCreditCard(credit_card0); |
| 238 | 238 |
| 239 CreditCard credit_card1("1141084B-72D7-4B73-90CF-3D6AC154673B", | 239 CreditCard credit_card1("1141084B-72D7-4B73-90CF-3D6AC154673B", |
| 240 "https://www.example.com"); | 240 "https://www.example.com"); |
| 241 credit_card1.set_use_count(300); | 241 credit_card1.set_use_count(300); |
| 242 credit_card1.set_use_date(base::Time::Now() - | 242 credit_card1.set_use_date(base::Time::Now() - |
| 243 base::TimeDelta::FromDays(10)); | 243 base::TimeDelta::FromDays(10)); |
| 244 test::SetCreditCardInfo(&credit_card1, "John Dillinger", | 244 test::SetCreditCardInfo(&credit_card1, "John Dillinger", |
| 245 "423456789012" /* Visa */, "01", "2010"); | 245 "423456789012" /* Visa */, "01", "2100"); |
| 246 personal_data_->AddCreditCard(credit_card1); | 246 personal_data_->AddCreditCard(credit_card1); |
| 247 | 247 |
| 248 CreditCard credit_card2("002149C1-EE28-4213-A3B9-DA243FFF021B", | 248 CreditCard credit_card2("002149C1-EE28-4213-A3B9-DA243FFF021B", |
| 249 "https://www.example.com"); | 249 "https://www.example.com"); |
| 250 credit_card2.set_use_count(1); | 250 credit_card2.set_use_count(1); |
| 251 credit_card2.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(1)); | 251 credit_card2.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(1)); |
| 252 test::SetCreditCardInfo(&credit_card2, "Bonnie Parker", | 252 test::SetCreditCardInfo(&credit_card2, "Bonnie Parker", |
| 253 "518765432109" /* Mastercard */, "", ""); | 253 "518765432109" /* Mastercard */, "", ""); |
| 254 personal_data_->AddCreditCard(credit_card2); | 254 personal_data_->AddCreditCard(credit_card2); |
| 255 | 255 |
| (...skipping 3044 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3300 // Test that local and server cards are ordered as expected. | 3300 // Test that local and server cards are ordered as expected. |
| 3301 TEST_F(PersonalDataManagerTest, | 3301 TEST_F(PersonalDataManagerTest, |
| 3302 GetCreditCardSuggestions_LocalAndServerCardsRanking) { | 3302 GetCreditCardSuggestions_LocalAndServerCardsRanking) { |
| 3303 EnableWalletCardImport(); | 3303 EnableWalletCardImport(); |
| 3304 SetupReferenceLocalCreditCards(); | 3304 SetupReferenceLocalCreditCards(); |
| 3305 | 3305 |
| 3306 // Add some server cards. | 3306 // Add some server cards. |
| 3307 std::vector<CreditCard> server_cards; | 3307 std::vector<CreditCard> server_cards; |
| 3308 server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "b459")); | 3308 server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "b459")); |
| 3309 test::SetCreditCardInfo(&server_cards.back(), "Emmet Dalton", "2110", "12", | 3309 test::SetCreditCardInfo(&server_cards.back(), "Emmet Dalton", "2110", "12", |
| 3310 "2012"); | 3310 "2112"); |
| 3311 server_cards.back().set_use_count(2); | 3311 server_cards.back().set_use_count(2); |
| 3312 server_cards.back().set_use_date(base::Time::Now() - | 3312 server_cards.back().set_use_date(base::Time::Now() - |
| 3313 base::TimeDelta::FromDays(1)); | 3313 base::TimeDelta::FromDays(1)); |
| 3314 server_cards.back().SetTypeForMaskedCard(kVisaCard); | 3314 server_cards.back().SetTypeForMaskedCard(kVisaCard); |
| 3315 | 3315 |
| 3316 server_cards.push_back(CreditCard(CreditCard::FULL_SERVER_CARD, "b460")); | 3316 server_cards.push_back(CreditCard(CreditCard::FULL_SERVER_CARD, "b460")); |
| 3317 test::SetCreditCardInfo(&server_cards.back(), "Jesse James", "2109", "12", | 3317 test::SetCreditCardInfo(&server_cards.back(), "Jesse James", "2109", "12", |
| 3318 "2012"); | 3318 "2112"); |
| 3319 server_cards.back().set_use_count(6); | 3319 server_cards.back().set_use_count(6); |
| 3320 server_cards.back().set_use_date(base::Time::Now() - | 3320 server_cards.back().set_use_date(base::Time::Now() - |
| 3321 base::TimeDelta::FromDays(1)); | 3321 base::TimeDelta::FromDays(1)); |
| 3322 | 3322 |
| 3323 test::SetServerCreditCards(autofill_table_, server_cards); | 3323 test::SetServerCreditCards(autofill_table_, server_cards); |
| 3324 personal_data_->Refresh(); | 3324 personal_data_->Refresh(); |
| 3325 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) | 3325 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) |
| 3326 .WillOnce(QuitMainMessageLoop()); | 3326 .WillOnce(QuitMainMessageLoop()); |
| 3327 base::MessageLoop::current()->Run(); | 3327 base::MessageLoop::current()->Run(); |
| 3328 | 3328 |
| 3329 std::vector<Suggestion> suggestions = | 3329 std::vector<Suggestion> suggestions = |
| 3330 personal_data_->GetCreditCardSuggestions( | 3330 personal_data_->GetCreditCardSuggestions( |
| 3331 AutofillType(CREDIT_CARD_NAME_FULL), | 3331 AutofillType(CREDIT_CARD_NAME_FULL), |
| 3332 /* field_contents= */ base::string16()); | 3332 /* field_contents= */ base::string16()); |
| 3333 ASSERT_EQ(5U, suggestions.size()); | 3333 ASSERT_EQ(5U, suggestions.size()); |
| 3334 | 3334 |
| 3335 // All cards should be ordered as expected. | 3335 // All cards should be ordered as expected. |
| 3336 EXPECT_EQ(ASCIIToUTF16("Jesse James"), suggestions[0].value); | 3336 EXPECT_EQ(ASCIIToUTF16("Jesse James"), suggestions[0].value); |
| 3337 EXPECT_EQ(ASCIIToUTF16("John Dillinger"), suggestions[1].value); | 3337 EXPECT_EQ(ASCIIToUTF16("John Dillinger"), suggestions[1].value); |
| 3338 EXPECT_EQ(ASCIIToUTF16("Clyde Barrow"), suggestions[2].value); | 3338 EXPECT_EQ(ASCIIToUTF16("Clyde Barrow"), suggestions[2].value); |
| 3339 EXPECT_EQ(ASCIIToUTF16("Emmet Dalton"), suggestions[3].value); | 3339 EXPECT_EQ(ASCIIToUTF16("Emmet Dalton"), suggestions[3].value); |
| 3340 EXPECT_EQ(ASCIIToUTF16("Bonnie Parker"), suggestions[4].value); | 3340 EXPECT_EQ(ASCIIToUTF16("Bonnie Parker"), suggestions[4].value); |
| 3341 } | 3341 } |
| 3342 | 3342 |
| 3343 // Test that an expired card gets suggested last, even if it has the highest | |
| 3344 // frecency score. | |
| 3345 TEST_F(PersonalDataManagerTest, GetCreditCardSuggestions_ExpiredCardIsLast) { | |
| 3346 ASSERT_EQ(0U, personal_data_->GetCreditCards().size()); | |
| 3347 | |
| 3348 // Add an often used expired card. | |
| 3349 CreditCard credit_card0("287151C8-6AB1-487C-9095-28E80BE5DA15", | |
| 3350 "https://www.example.com"); | |
| 3351 test::SetCreditCardInfo(&credit_card0, "Clyde Barrow", | |
| 3352 "347666888555" /* American Express */, "04", "1999"); | |
| 3353 credit_card0.set_use_count(300000); | |
| 3354 credit_card0.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(1)); | |
| 3355 personal_data_->AddCreditCard(credit_card0); | |
| 3356 | |
| 3357 // Add less used non expired card. | |
| 3358 CreditCard credit_card1("1141084B-72D7-4B73-90CF-3D6AC154673B", | |
| 3359 "https://www.example.com"); | |
| 3360 credit_card1.set_use_count(300); | |
| 3361 credit_card1.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(10)); | |
| 3362 test::SetCreditCardInfo(&credit_card1, "John Dillinger", | |
| 3363 "423456789012" /* Visa */, "01", "2100"); | |
| 3364 personal_data_->AddCreditCard(credit_card1); | |
| 3365 | |
| 3366 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) | |
| 3367 .WillOnce(QuitMainMessageLoop()); | |
| 3368 base::MessageLoop::current()->Run(); | |
| 3369 | |
| 3370 ASSERT_EQ(2U, personal_data_->GetCreditCards().size()); | |
| 3371 | |
| 3372 std::vector<Suggestion> suggestions = | |
| 3373 personal_data_->GetCreditCardSuggestions( | |
| 3374 AutofillType(CREDIT_CARD_NAME_FULL), | |
| 3375 /* field_contents= */ base::string16()); | |
| 3376 ASSERT_EQ(2U, suggestions.size()); | |
| 3377 | |
| 3378 // The expired card is expected to be last. | |
| 3379 EXPECT_EQ(ASCIIToUTF16("John Dillinger"), suggestions[0].value); | |
| 3380 EXPECT_EQ(ASCIIToUTF16("Clyde Barrow"), suggestions[1].value); | |
| 3381 } | |
| 3382 | |
| 3383 // 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.
| |
| 3384 TEST_F(PersonalDataManagerTest, | |
| 3385 GetCreditCardSuggestions_ExpiredCardsOrderedByFrecency) { | |
| 3386 ASSERT_EQ(0U, personal_data_->GetCreditCards().size()); | |
| 3387 | |
| 3388 // Add a recently used expired card. | |
| 3389 CreditCard credit_card0("287151C8-6AB1-487C-9095-28E80BE5DA15", | |
| 3390 "https://www.example.com"); | |
| 3391 test::SetCreditCardInfo(&credit_card0, "Clyde Barrow", | |
| 3392 "347666888555" /* American Express */, "04", "1999"); | |
| 3393 credit_card0.set_use_count(300); | |
| 3394 credit_card0.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(1)); | |
| 3395 personal_data_->AddCreditCard(credit_card0); | |
| 3396 | |
| 3397 // Add a less recently used expired card. | |
| 3398 CreditCard credit_card1("1141084B-72D7-4B73-90CF-3D6AC154673B", | |
| 3399 "https://www.example.com"); | |
| 3400 credit_card1.set_use_count(300); | |
| 3401 credit_card1.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(10)); | |
| 3402 test::SetCreditCardInfo(&credit_card1, "John Dillinger", | |
| 3403 "423456789012" /* Visa */, "01", "1998"); | |
| 3404 personal_data_->AddCreditCard(credit_card1); | |
| 3405 | |
| 3406 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) | |
| 3407 .WillOnce(QuitMainMessageLoop()); | |
| 3408 base::MessageLoop::current()->Run(); | |
| 3409 | |
| 3410 ASSERT_EQ(2U, personal_data_->GetCreditCards().size()); | |
| 3411 | |
| 3412 std::vector<Suggestion> suggestions = | |
| 3413 personal_data_->GetCreditCardSuggestions( | |
| 3414 AutofillType(CREDIT_CARD_NAME_FULL), | |
| 3415 /* field_contents= */ base::string16()); | |
| 3416 ASSERT_EQ(2U, suggestions.size()); | |
| 3417 | |
| 3418 // The expired cards should be sorted by frecency | |
| 3419 EXPECT_EQ(ASCIIToUTF16("Clyde Barrow"), suggestions[0].value); | |
| 3420 EXPECT_EQ(ASCIIToUTF16("John Dillinger"), suggestions[1].value); | |
| 3421 } | |
| 3422 | |
| 3343 // Test that a card that doesn't have a number is not shown in the suggestions | 3423 // Test that a card that doesn't have a number is not shown in the suggestions |
| 3344 // when querying credit cards by their number. | 3424 // when querying credit cards by their number. |
| 3345 TEST_F(PersonalDataManagerTest, GetCreditCardSuggestions_NumberMissing) { | 3425 TEST_F(PersonalDataManagerTest, GetCreditCardSuggestions_NumberMissing) { |
| 3346 // Create one normal credit card and one credit card with the number missing. | 3426 // Create one normal credit card and one credit card with the number missing. |
| 3347 ASSERT_EQ(0U, personal_data_->GetCreditCards().size()); | 3427 ASSERT_EQ(0U, personal_data_->GetCreditCards().size()); |
| 3348 | 3428 |
| 3349 CreditCard credit_card0("287151C8-6AB1-487C-9095-28E80BE5DA15", | 3429 CreditCard credit_card0("287151C8-6AB1-487C-9095-28E80BE5DA15", |
| 3350 "https://www.example.com"); | 3430 "https://www.example.com"); |
| 3351 test::SetCreditCardInfo(&credit_card0, "Clyde Barrow", | 3431 test::SetCreditCardInfo(&credit_card0, "Clyde Barrow", |
| 3352 "347666888555" /* American Express */, "04", "2015"); | 3432 "347666888555" /* American Express */, "04", "2099"); |
| 3353 credit_card0.set_use_count(3); | 3433 credit_card0.set_use_count(3); |
| 3354 credit_card0.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(1)); | 3434 credit_card0.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(1)); |
| 3355 personal_data_->AddCreditCard(credit_card0); | 3435 personal_data_->AddCreditCard(credit_card0); |
| 3356 | 3436 |
| 3357 CreditCard credit_card1("1141084B-72D7-4B73-90CF-3D6AC154673B", | 3437 CreditCard credit_card1("1141084B-72D7-4B73-90CF-3D6AC154673B", |
| 3358 "https://www.example.com"); | 3438 "https://www.example.com"); |
| 3359 credit_card1.set_use_count(300); | 3439 credit_card1.set_use_count(300); |
| 3360 credit_card1.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(10)); | 3440 credit_card1.set_use_date(base::Time::Now() - base::TimeDelta::FromDays(10)); |
| 3361 test::SetCreditCardInfo(&credit_card1, "John Dillinger", "", "01", "2010"); | 3441 test::SetCreditCardInfo(&credit_card1, "John Dillinger", "", "01", "2110"); |
| 3362 personal_data_->AddCreditCard(credit_card1); | 3442 personal_data_->AddCreditCard(credit_card1); |
| 3363 | 3443 |
| 3364 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) | 3444 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) |
| 3365 .WillOnce(QuitMainMessageLoop()); | 3445 .WillOnce(QuitMainMessageLoop()); |
| 3366 base::MessageLoop::current()->Run(); | 3446 base::MessageLoop::current()->Run(); |
| 3367 | 3447 |
| 3368 ASSERT_EQ(2U, personal_data_->GetCreditCards().size()); | 3448 ASSERT_EQ(2U, personal_data_->GetCreditCards().size()); |
| 3369 | 3449 |
| 3370 // Sublabel is expiration date when filling card number. The second card | 3450 // Sublabel is expiration date when filling card number. The second card |
| 3371 // doesn't have a number so it should not be included in the suggestions. | 3451 // doesn't have a number so it should not be included in the suggestions. |
| 3372 std::vector<Suggestion> suggestions = | 3452 std::vector<Suggestion> suggestions = |
| 3373 personal_data_->GetCreditCardSuggestions( | 3453 personal_data_->GetCreditCardSuggestions( |
| 3374 AutofillType(CREDIT_CARD_NUMBER), | 3454 AutofillType(CREDIT_CARD_NUMBER), |
| 3375 /* field_contents= */ base::string16()); | 3455 /* field_contents= */ base::string16()); |
| 3376 ASSERT_EQ(1U, suggestions.size()); | 3456 ASSERT_EQ(1U, suggestions.size()); |
| 3377 EXPECT_EQ(UTF8ToUTF16("Amex\xC2\xA0\xE2\x8B\xAF" | 3457 EXPECT_EQ(UTF8ToUTF16("Amex\xC2\xA0\xE2\x8B\xAF" |
| 3378 "8555"), | 3458 "8555"), |
| 3379 suggestions[0].value); | 3459 suggestions[0].value); |
| 3380 EXPECT_EQ(ASCIIToUTF16("04/15"), suggestions[0].label); | 3460 EXPECT_EQ(ASCIIToUTF16("04/99"), suggestions[0].label); |
| 3381 } | 3461 } |
| 3382 | 3462 |
| 3383 // Tests the suggestions of duplicate local and server credit cards. | 3463 // Tests the suggestions of duplicate local and server credit cards. |
| 3384 TEST_F(PersonalDataManagerTest, GetCreditCardSuggestions_ServerDuplicates) { | 3464 TEST_F(PersonalDataManagerTest, GetCreditCardSuggestions_ServerDuplicates) { |
| 3385 EnableWalletCardImport(); | 3465 EnableWalletCardImport(); |
| 3386 SetupReferenceLocalCreditCards(); | 3466 SetupReferenceLocalCreditCards(); |
| 3387 | 3467 |
| 3388 // Add some server cards. If there are local dupes, the locals should be | 3468 // Add some server cards. If there are local dupes, the locals should be |
| 3389 // hidden. | 3469 // hidden. |
| 3390 std::vector<CreditCard> server_cards; | 3470 std::vector<CreditCard> server_cards; |
| 3391 // This server card matches a local card, except the local card is missing the | 3471 // This server card matches a local card, except the local card is missing the |
| 3392 // number. This should count as a dupe and thus not be shown in the | 3472 // number. This should count as a dupe and thus not be shown in the |
| 3393 // suggestions since the locally saved card takes precedence. | 3473 // suggestions since the locally saved card takes precedence. |
| 3394 server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "a123")); | 3474 server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "a123")); |
| 3395 test::SetCreditCardInfo(&server_cards.back(), "John Dillinger", | 3475 test::SetCreditCardInfo(&server_cards.back(), "John Dillinger", |
| 3396 "9012" /* Visa */, "01", "2010"); | 3476 "9012" /* Visa */, "01", "2100"); |
| 3397 server_cards.back().set_use_count(2); | 3477 server_cards.back().set_use_count(2); |
| 3398 server_cards.back().set_use_date(base::Time::Now() - | 3478 server_cards.back().set_use_date(base::Time::Now() - |
| 3399 base::TimeDelta::FromDays(15)); | 3479 base::TimeDelta::FromDays(15)); |
| 3400 server_cards.back().SetTypeForMaskedCard(kVisaCard); | 3480 server_cards.back().SetTypeForMaskedCard(kVisaCard); |
| 3401 | 3481 |
| 3402 // This server card is identical to a local card, but has a different | 3482 // This server card is identical to a local card, but has a different |
| 3403 // card type. Not a dupe and therefore both should appear in the suggestions. | 3483 // card type. Not a dupe and therefore both should appear in the suggestions. |
| 3404 server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "b456")); | 3484 server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "b456")); |
| 3405 test::SetCreditCardInfo(&server_cards.back(), "Bonnie Parker", "2109", "12", | 3485 test::SetCreditCardInfo(&server_cards.back(), "Bonnie Parker", "2109", "12", |
| 3406 "2012"); | 3486 "2012"); |
| 3407 server_cards.back().set_use_count(3); | 3487 server_cards.back().set_use_count(3); |
| 3408 server_cards.back().set_use_date(base::Time::Now() - | 3488 server_cards.back().set_use_date(base::Time::Now() - |
| 3409 base::TimeDelta::FromDays(15)); | 3489 base::TimeDelta::FromDays(15)); |
| 3410 server_cards.back().SetTypeForMaskedCard(kVisaCard); | 3490 server_cards.back().SetTypeForMaskedCard(kVisaCard); |
| 3411 | 3491 |
| 3412 // This unmasked server card is an exact dupe of a local card. Therefore only | 3492 // This unmasked server card is an exact dupe of a local card. Therefore only |
| 3413 // this card should appear in the suggestions as full server cards have | 3493 // this card should appear in the suggestions as full server cards have |
| 3414 // precedence over local cards. | 3494 // precedence over local cards. |
| 3415 server_cards.push_back(CreditCard(CreditCard::FULL_SERVER_CARD, "c789")); | 3495 server_cards.push_back(CreditCard(CreditCard::FULL_SERVER_CARD, "c789")); |
| 3416 test::SetCreditCardInfo(&server_cards.back(), "Clyde Barrow", | 3496 test::SetCreditCardInfo(&server_cards.back(), "Clyde Barrow", |
| 3417 "347666888555" /* American Express */, "04", "2015"); | 3497 "347666888555" /* American Express */, "04", "2099"); |
| 3418 server_cards.back().set_use_count(1); | 3498 server_cards.back().set_use_count(1); |
| 3419 server_cards.back().set_use_date(base::Time::Now() - | 3499 server_cards.back().set_use_date(base::Time::Now() - |
| 3420 base::TimeDelta::FromDays(15)); | 3500 base::TimeDelta::FromDays(15)); |
| 3421 | 3501 |
| 3422 test::SetServerCreditCards(autofill_table_, server_cards); | 3502 test::SetServerCreditCards(autofill_table_, server_cards); |
| 3423 personal_data_->Refresh(); | 3503 personal_data_->Refresh(); |
| 3424 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) | 3504 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) |
| 3425 .WillOnce(QuitMainMessageLoop()); | 3505 .WillOnce(QuitMainMessageLoop()); |
| 3426 base::MessageLoop::current()->Run(); | 3506 base::MessageLoop::current()->Run(); |
| 3427 | 3507 |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 3457 GetCreditCardSuggestions_ServerCardDuplicateOfMultipleLocalCards) { | 3537 GetCreditCardSuggestions_ServerCardDuplicateOfMultipleLocalCards) { |
| 3458 EnableWalletCardImport(); | 3538 EnableWalletCardImport(); |
| 3459 SetupReferenceLocalCreditCards(); | 3539 SetupReferenceLocalCreditCards(); |
| 3460 | 3540 |
| 3461 // Add a duplicate server card. | 3541 // Add a duplicate server card. |
| 3462 std::vector<CreditCard> server_cards; | 3542 std::vector<CreditCard> server_cards; |
| 3463 // This unmasked server card is an exact dupe of a local card. Therefore only | 3543 // This unmasked server card is an exact dupe of a local card. Therefore only |
| 3464 // the local card should appear in the suggestions. | 3544 // the local card should appear in the suggestions. |
| 3465 server_cards.push_back(CreditCard(CreditCard::FULL_SERVER_CARD, "c789")); | 3545 server_cards.push_back(CreditCard(CreditCard::FULL_SERVER_CARD, "c789")); |
| 3466 test::SetCreditCardInfo(&server_cards.back(), "Clyde Barrow", | 3546 test::SetCreditCardInfo(&server_cards.back(), "Clyde Barrow", |
| 3467 "347666888555" /* American Express */, "04", "2015"); | 3547 "347666888555" /* American Express */, "04", "2099"); |
| 3468 | 3548 |
| 3469 test::SetServerCreditCards(autofill_table_, server_cards); | 3549 test::SetServerCreditCards(autofill_table_, server_cards); |
| 3470 personal_data_->Refresh(); | 3550 personal_data_->Refresh(); |
| 3471 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) | 3551 EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) |
| 3472 .WillOnce(QuitMainMessageLoop()); | 3552 .WillOnce(QuitMainMessageLoop()); |
| 3473 base::MessageLoop::current()->Run(); | 3553 base::MessageLoop::current()->Run(); |
| 3474 | 3554 |
| 3475 std::vector<Suggestion> suggestions = | 3555 std::vector<Suggestion> suggestions = |
| 3476 personal_data_->GetCreditCardSuggestions( | 3556 personal_data_->GetCreditCardSuggestions( |
| 3477 AutofillType(CREDIT_CARD_NAME_FULL), | 3557 AutofillType(CREDIT_CARD_NAME_FULL), |
| (...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4054 EXPECT_GT(base::TimeDelta::FromMilliseconds(500), | 4134 EXPECT_GT(base::TimeDelta::FromMilliseconds(500), |
| 4055 base::Time::Now() - saved_profiles.front()->use_date()); | 4135 base::Time::Now() - saved_profiles.front()->use_date()); |
| 4056 } | 4136 } |
| 4057 | 4137 |
| 4058 // Erase the profiles for the next test. | 4138 // Erase the profiles for the next test. |
| 4059 ResetProfiles(); | 4139 ResetProfiles(); |
| 4060 } | 4140 } |
| 4061 } | 4141 } |
| 4062 | 4142 |
| 4063 } // namespace autofill | 4143 } // namespace autofill |
| OLD | NEW |