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

Unified Diff: components/autofill/core/browser/personal_data_manager_unittest.cc

Issue 2711543002: Experiment to add bank name in autofill ui. (Closed)
Patch Set: Fix and add more metrics unit tests Created 3 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: components/autofill/core/browser/personal_data_manager_unittest.cc
diff --git a/components/autofill/core/browser/personal_data_manager_unittest.cc b/components/autofill/core/browser/personal_data_manager_unittest.cc
index 2a1b23db52fc1c27949428a1859cfb752853c0ec..6ced0386dc08ad6447012accca18677f0880ca50 100644
--- a/components/autofill/core/browser/personal_data_manager_unittest.cc
+++ b/components/autofill/core/browser/personal_data_manager_unittest.cc
@@ -24,6 +24,7 @@
#include "base/strings/utf_string_conversions.h"
#include "base/synchronization/waitable_event.h"
#include "base/test/histogram_tester.h"
+#include "base/test/scoped_feature_list.h"
#include "base/test/simple_test_clock.h"
#include "base/threading/thread_task_runner_handle.h"
#include "base/time/time.h"
@@ -3634,9 +3635,11 @@ TEST_F(PersonalDataManagerTest,
.WillOnce(QuitMainMessageLoop());
base::RunLoop().Run();
+ bool isBankNameAvailable;
std::vector<Suggestion> suggestions =
- personal_data_->GetCreditCardSuggestions(AutofillType(CREDIT_CARD_NUMBER),
- base::ASCIIToUTF16("12345678"));
+ personal_data_->GetCreditCardSuggestions(
+ AutofillType(CREDIT_CARD_NUMBER), base::ASCIIToUTF16("12345678"),
+ isBankNameAvailable);
// There should be no suggestions.
ASSERT_EQ(0U, suggestions.size());
@@ -3646,12 +3649,14 @@ TEST_F(PersonalDataManagerTest,
TEST_F(PersonalDataManagerTest, GetCreditCardSuggestions_LocalCardsRanking) {
SetupReferenceLocalCreditCards();
+ bool isBankNameAvailable;
// Sublabel is card number when filling name (exact format depends on
// the platform, but the last 4 digits should appear).
std::vector<Suggestion> suggestions =
personal_data_->GetCreditCardSuggestions(
AutofillType(CREDIT_CARD_NAME_FULL),
- /* field_contents= */ base::string16());
+ /* field_contents= */ base::string16(),
+ isBankNameAvailable);
ASSERT_EQ(3U, suggestions.size());
// Ordered as expected.
@@ -3695,10 +3700,12 @@ TEST_F(PersonalDataManagerTest,
.WillOnce(QuitMainMessageLoop());
base::RunLoop().Run();
+ bool isBankNameAvailable;
std::vector<Suggestion> suggestions =
personal_data_->GetCreditCardSuggestions(
AutofillType(CREDIT_CARD_NAME_FULL),
- /* field_contents= */ base::string16());
+ /* field_contents= */ base::string16(),
+ isBankNameAvailable);
ASSERT_EQ(5U, suggestions.size());
// All cards should be ordered as expected.
@@ -3748,10 +3755,12 @@ TEST_F(PersonalDataManagerTest, GetCreditCardSuggestions_ExpiredCards) {
ASSERT_EQ(3U, personal_data_->GetCreditCards().size());
+ bool isBankNameAvailable;
std::vector<Suggestion> suggestions =
personal_data_->GetCreditCardSuggestions(
AutofillType(CREDIT_CARD_NAME_FULL),
- /* field_contents= */ base::string16());
+ /* field_contents= */ base::string16(),
+ isBankNameAvailable);
ASSERT_EQ(3U, suggestions.size());
// The never used non expired card should be suggested first.
@@ -3795,10 +3804,12 @@ TEST_F(PersonalDataManagerTest, GetCreditCardSuggestions_NumberMissing) {
// Sublabel is expiration date when filling card number. The second card
// doesn't have a number so it should not be included in the suggestions.
+ bool isBankNameAvailable;
std::vector<Suggestion> suggestions =
personal_data_->GetCreditCardSuggestions(
AutofillType(CREDIT_CARD_NUMBER),
- /* field_contents= */ base::string16());
+ /* field_contents= */ base::string16(),
+ isBankNameAvailable);
ASSERT_EQ(1U, suggestions.size());
EXPECT_EQ(
base::UTF8ToUTF16(std::string("Amex") + kUTF8MidlineEllipsis + "8555"),
@@ -3852,10 +3863,12 @@ TEST_F(PersonalDataManagerTest, GetCreditCardSuggestions_ServerDuplicates) {
.WillOnce(QuitMainMessageLoop());
base::RunLoop().Run();
+ bool isBankNameAvailable;
std::vector<Suggestion> suggestions =
personal_data_->GetCreditCardSuggestions(
AutofillType(CREDIT_CARD_NAME_FULL),
- /* field_contents= */ base::string16());
+ /* field_contents= */ base::string16(),
+ isBankNameAvailable);
ASSERT_EQ(4U, suggestions.size());
EXPECT_EQ(base::ASCIIToUTF16("John Dillinger"), suggestions[0].value);
EXPECT_EQ(base::ASCIIToUTF16("Clyde Barrow"), suggestions[1].value);
@@ -3863,7 +3876,8 @@ TEST_F(PersonalDataManagerTest, GetCreditCardSuggestions_ServerDuplicates) {
EXPECT_EQ(base::ASCIIToUTF16("Bonnie Parker"), suggestions[3].value);
suggestions = personal_data_->GetCreditCardSuggestions(
- AutofillType(CREDIT_CARD_NUMBER), /* field_contents= */ base::string16());
+ AutofillType(CREDIT_CARD_NUMBER), /* field_contents= */ base::string16(),
+ isBankNameAvailable);
ASSERT_EQ(4U, suggestions.size());
EXPECT_EQ(
base::UTF8ToUTF16(std::string("Visa") + kUTF8MidlineEllipsis + "9012"),
@@ -3900,10 +3914,12 @@ TEST_F(PersonalDataManagerTest,
.WillOnce(QuitMainMessageLoop());
base::RunLoop().Run();
+ bool isBankNameAvailable;
std::vector<Suggestion> suggestions =
personal_data_->GetCreditCardSuggestions(
AutofillType(CREDIT_CARD_NAME_FULL),
- /* field_contents= */ base::string16());
+ /* field_contents= */ base::string16(),
+ isBankNameAvailable);
ASSERT_EQ(3U, suggestions.size());
// Add a second dupe local card to make sure a full server card can be a dupe
@@ -3919,10 +3935,94 @@ TEST_F(PersonalDataManagerTest,
suggestions = personal_data_->GetCreditCardSuggestions(
AutofillType(CREDIT_CARD_NAME_FULL),
- /* field_contents= */ base::string16());
+ /* field_contents= */ base::string16(),
+ isBankNameAvailable);
ASSERT_EQ(3U, suggestions.size());
}
+// Tests that server cards have bank name when feature flag on.
+TEST_F(PersonalDataManagerTest,
+ GetCreditCardSuggestions_ShowBankNameOfServerCards) {
+ // Turn on feature flag.
+ base::test::ScopedFeatureList scoped_feature_list_;
+ scoped_feature_list_.InitAndEnableFeature(kAutofillCreditCardBankNameDisplay);
+
+ EnableWalletCardImport();
+ SetupReferenceLocalCreditCards();
+
+ // Add some server cards.
+ std::vector<CreditCard> server_cards;
+ server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "b459"));
+ test::SetCreditCardInfo(&server_cards.back(), "Emmet Dalton", "2110", "12",
+ "2999", "1");
+ server_cards.back().set_use_count(2);
+ server_cards.back().set_use_date(AutofillClock::Now() -
+ base::TimeDelta::FromDays(1));
+ server_cards.back().SetNetworkForMaskedCard(kVisaCard);
+ server_cards.back().set_bank_name("Chase");
+
+ test::SetServerCreditCards(autofill_table_, server_cards);
+ personal_data_->Refresh();
+ EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged())
+ .WillOnce(QuitMainMessageLoop());
+ base::RunLoop().Run();
+
+ bool isBankNameAvailable;
+ std::vector<Suggestion> suggestions =
+ personal_data_->GetCreditCardSuggestions(
+ AutofillType(CREDIT_CARD_NUMBER),
+ /* field_contents= */ base::string16(),
+ isBankNameAvailable);
+ EXPECT_TRUE(isBankNameAvailable);
+ ASSERT_EQ(4U, suggestions.size());
+
+ // All cards should be ordered as expected.
+ EXPECT_EQ(
+ base::UTF8ToUTF16(std::string("Visa") + kUTF8MidlineEllipsis + "9012"),
+ suggestions[0].value);
+ EXPECT_EQ(
+ base::UTF8ToUTF16(std::string("Amex") + kUTF8MidlineEllipsis + "8555"),
+ suggestions[1].value);
+ EXPECT_EQ(
+ base::UTF8ToUTF16(std::string("Chase") + kUTF8MidlineEllipsis + "2110"),
+ suggestions[2].value);
+ EXPECT_EQ(base::UTF8ToUTF16(std::string("Mastercard") + kUTF8MidlineEllipsis +
+ "2109"),
+ suggestions[3].value);
+}
+
sebsg 2017/06/12 21:17:00 Can you add a test where the feature is enabled bu
Shanfeng 2017/06/12 23:34:58 Done.
+// Tests that isBankNameAvailable is true even feature flag off.
+TEST_F(PersonalDataManagerTest,
+ GetCreditCardSuggestions_IsBankNameAvailableTrueEvenIfFeatureOff) {
+ EnableWalletCardImport();
+ SetupReferenceLocalCreditCards();
+
+ // Add some server cards.
+ std::vector<CreditCard> server_cards;
+ server_cards.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "b459"));
+ test::SetCreditCardInfo(&server_cards.back(), "Emmet Dalton", "2110", "12",
+ "2999", "1");
+ server_cards.back().set_use_count(2);
+ server_cards.back().set_use_date(AutofillClock::Now() -
+ base::TimeDelta::FromDays(1));
+ server_cards.back().SetNetworkForMaskedCard(kVisaCard);
+ server_cards.back().set_bank_name("Chase");
+
+ test::SetServerCreditCards(autofill_table_, server_cards);
+ personal_data_->Refresh();
+ EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged())
+ .WillOnce(QuitMainMessageLoop());
+ base::RunLoop().Run();
+
+ bool isBankNameAvailable;
+ std::vector<Suggestion> suggestions =
+ personal_data_->GetCreditCardSuggestions(
+ AutofillType(CREDIT_CARD_NUMBER),
+ /* field_contents= */ base::string16(),
+ isBankNameAvailable);
+ ASSERT_EQ(4U, suggestions.size());
+}
+
// Tests that only the full server card is kept when deduping with a local
// duplicate of it.
TEST_F(PersonalDataManagerTest,

Powered by Google App Engine
This is Rietveld 408576698