| 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 9945243bcedd5ea18bc0dccf7f5c1f34c8d62df6..8778990ef781f579cee6028a5f533b66b8159ee0 100644
|
| --- a/components/autofill/core/browser/autofill_manager_unittest.cc
|
| +++ b/components/autofill/core/browser/autofill_manager_unittest.cc
|
| @@ -711,6 +711,11 @@ class AutofillManagerTest : public testing::Test {
|
| return autofill_manager_->MakeFrontendID(cc_sid, profile_sid);
|
| }
|
|
|
| + bool WillFillCreditCardNumber(const FormData& form,
|
| + const FormFieldData& field) {
|
| + return autofill_manager_->WillFillCreditCardNumber(form, field);
|
| + }
|
| +
|
| protected:
|
| base::MessageLoop message_loop_;
|
| TestAutofillClient autofill_client_;
|
| @@ -1472,6 +1477,41 @@ TEST_F(AutofillManagerTest, FillAddressForm) {
|
| EXPECT_NE(base::Time(), profile->use_date());
|
| }
|
|
|
| +TEST_F(AutofillManagerTest, WillFillCreditCardNumber) {
|
| + // Set up our form data.
|
| + FormData form;
|
| + CreateTestCreditCardFormData(&form, true, false);
|
| + std::vector<FormData> forms(1, form);
|
| + FormsSeen(forms);
|
| +
|
| + FormFieldData* number_field = nullptr;
|
| + FormFieldData* name_field = nullptr;
|
| + FormFieldData* month_field = nullptr;
|
| + for (size_t i = 0; i < form.fields.size(); ++i) {
|
| + if (form.fields[i].name == ASCIIToUTF16("cardnumber"))
|
| + number_field = &form.fields[i];
|
| + else if (form.fields[i].name == ASCIIToUTF16("nameoncard"))
|
| + name_field = &form.fields[i];
|
| + else if (form.fields[i].name == ASCIIToUTF16("ccmonth"))
|
| + month_field = &form.fields[i];
|
| + }
|
| +
|
| + // Empty form - whole form is Autofilled.
|
| + EXPECT_TRUE(WillFillCreditCardNumber(form, *number_field));
|
| + EXPECT_TRUE(WillFillCreditCardNumber(form, *name_field));
|
| + // If the user has entered a value, it won't be overridden.
|
| + number_field->value = ASCIIToUTF16("gibberish");
|
| + EXPECT_TRUE(WillFillCreditCardNumber(form, *number_field));
|
| + EXPECT_FALSE(WillFillCreditCardNumber(form, *name_field));
|
| + number_field->value.clear();
|
| + EXPECT_TRUE(WillFillCreditCardNumber(form, *name_field));
|
| +
|
| + // When part of the section is Autofilled, only fill the initiating field.
|
| + month_field->is_autofilled = true;
|
| + EXPECT_FALSE(WillFillCreditCardNumber(form, *name_field));
|
| + EXPECT_TRUE(WillFillCreditCardNumber(form, *number_field));
|
| +}
|
| +
|
| // Test that we correctly fill an address form from an auxiliary profile.
|
| TEST_F(AutofillManagerTest, FillAddressFormFromAuxiliaryProfile) {
|
| personal_data_.ClearAutofillProfiles();
|
|
|