| Index: components/autofill/core/browser/autofill_manager_unittest.cc
|
| diff --git a/components/autofill/core/browser/autofill_manager_unittest.cc b/components/autofill/core/browser/autofill_manager_unittest.cc
|
| index 8e56b6052438504db2140feff54b731c1699d743..c7a3f8db1a68573247dffd5a81d1dba6e8bb9118 100644
|
| --- a/components/autofill/core/browser/autofill_manager_unittest.cc
|
| +++ b/components/autofill/core/browser/autofill_manager_unittest.cc
|
| @@ -15,6 +15,7 @@
|
| #include "base/run_loop.h"
|
| #include "base/strings/string16.h"
|
| #include "base/strings/string_number_conversions.h"
|
| +#include "base/strings/string_util.h"
|
| #include "base/strings/stringprintf.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "base/time/time.h"
|
| @@ -898,7 +899,7 @@ TEST_F(AutofillManagerTest, GetCreditCardSuggestionsMatchCharacter) {
|
| FormsSeen(forms);
|
|
|
| FormFieldData field;
|
| - test::CreateTestFormField("Card Number", "cardnumber", "4", "text", &field);
|
| + test::CreateTestFormField("Card Number", "cardnumber", "78", "text", &field);
|
| GetAutofillSuggestions(form, field);
|
|
|
| // No suggestions provided, so send an empty vector as the results.
|
| @@ -2988,4 +2989,67 @@ TEST_F(AutofillManagerTest, TestExternalDelegate) {
|
| EXPECT_TRUE(external_delegate_->on_query_seen());
|
| }
|
|
|
| +// Test to verify suggestions appears for forms having credit card number split
|
| +// across fields.
|
| +TEST_F(AutofillManagerTest, GetCreditCardSuggestionsForNumberSpitAcrossFields) {
|
| + // Set up our form data with credit card number split across fields.
|
| + FormData form;
|
| + form.name = ASCIIToUTF16("MyForm");
|
| + form.origin = GURL("https://myform.com/form.html");
|
| + form.action = GURL("https://myform.com/submit.html");
|
| + form.user_submitted = true;
|
| +
|
| + FormFieldData name_field;
|
| + test::CreateTestFormField("Name on Card", "nameoncard", "", "text",
|
| + &name_field);
|
| + form.fields.push_back(name_field);
|
| +
|
| + // Add new 4 |card_number_field|s to the |form|.
|
| + FormFieldData card_number_field;
|
| + card_number_field.max_length = 4;
|
| + test::CreateTestFormField("Card Number", "cardnumber_1", "", "text",
|
| + &card_number_field);
|
| + form.fields.push_back(card_number_field);
|
| +
|
| + test::CreateTestFormField("", "cardnumber_2", "", "text", &card_number_field);
|
| + form.fields.push_back(card_number_field);
|
| +
|
| + test::CreateTestFormField("", "cardnumber_3", "", "text", &card_number_field);
|
| + form.fields.push_back(card_number_field);
|
| +
|
| + test::CreateTestFormField("", "cardnumber_4", "", "text", &card_number_field);
|
| + form.fields.push_back(card_number_field);
|
| +
|
| + FormFieldData exp_field;
|
| + test::CreateTestFormField("Expiration Date", "ccmonth", "", "text",
|
| + &exp_field);
|
| + form.fields.push_back(exp_field);
|
| +
|
| + test::CreateTestFormField("", "ccyear", "", "text", &exp_field);
|
| + form.fields.push_back(exp_field);
|
| +
|
| + std::vector<FormData> forms(1, form);
|
| + FormsSeen(forms);
|
| +
|
| + // Verify whether suggestions are populated correctly for one of the middle
|
| + // credit card number fields when filled partially.
|
| + FormFieldData number_field = form.fields[3];
|
| + number_field.value = ASCIIToUTF16("901");
|
| +
|
| + // Get the suggestions for already filled credit card |number_field|.
|
| + GetAutofillSuggestions(form, number_field);
|
| +
|
| + // No autocomplete suggestions provided, so send an empty vector as the
|
| + // results. This triggers the combined message send.
|
| + AutocompleteSuggestionsReturned(std::vector<base::string16>());
|
| +
|
| + base::string16 expected_values[] = {ASCIIToUTF16("************3456")};
|
| + base::string16 expected_labels[] = {ASCIIToUTF16("04/12")};
|
| + base::string16 expected_icons[] = {ASCIIToUTF16(kVisaCard)};
|
| + int expected_unique_ids[] = {autofill_manager_->GetPackedCreditCardID(4)};
|
| + external_delegate_->CheckSuggestions(
|
| + kDefaultPageID, arraysize(expected_values), expected_values,
|
| + expected_labels, expected_icons, expected_unique_ids);
|
| +}
|
| +
|
| } // namespace autofill
|
|
|