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 b8466a9a9363d47ff56568b24cdd22f037bbeac3..bcdbb8dfbc3e6e7a67ab1c8dac9c8eac6422d144 100644 |
--- a/components/autofill/core/browser/autofill_manager_unittest.cc |
+++ b/components/autofill/core/browser/autofill_manager_unittest.cc |
@@ -1513,15 +1513,26 @@ TEST_F(AutofillManagerTest, WillFillCreditCardNumber) { |
month_field = &form.fields[i]; |
} |
- // Empty form - whole form is Autofilled. |
+ // Empty form - whole form is Autofilled (except on iOS). |
EXPECT_TRUE(WillFillCreditCardNumber(form, *number_field)); |
+#if defined(OS_IOS) |
+ EXPECT_FALSE(WillFillCreditCardNumber(form, *name_field)); |
+#else |
EXPECT_TRUE(WillFillCreditCardNumber(form, *name_field)); |
+#endif // defined(OS_IOS) |
+ |
// 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)); |
+ |
+ // But if that value is removed, it will be Autofilled (except on iOS). |
number_field->value.clear(); |
+#if defined(OS_IOS) |
+ EXPECT_FALSE(WillFillCreditCardNumber(form, *name_field)); |
+#else |
EXPECT_TRUE(WillFillCreditCardNumber(form, *name_field)); |
+#endif // defined(OS_IOS) |
// When part of the section is Autofilled, only fill the initiating field. |
month_field->is_autofilled = true; |
@@ -3192,11 +3203,29 @@ TEST_F(AutofillManagerTest, DontOfferToSaveWalletCard) { |
card.SetTypeForMaskedCard(kVisaCard); |
EXPECT_CALL(autofill_client_, ConfirmSaveCreditCard(_)).Times(0); |
+#if defined(OS_IOS) |
+ EXPECT_CALL(*autofill_driver_, SendFormDataToRenderer(_, _, _)).Times(4); |
+#else |
EXPECT_CALL(*autofill_driver_, SendFormDataToRenderer(_, _, _)); |
+#endif // defined(OS_IOS) |
autofill_manager_->FillOrPreviewCreditCardForm( |
AutofillDriver::FORM_DATA_ACTION_FILL, kDefaultPageID, form, |
form.fields[0], card, 0); |
+#if defined(OS_IOS) |
+ // Filling out the entire form on iOS requires requesting autofill on each of |
+ // the form fields. |
+ autofill_manager_->FillOrPreviewCreditCardForm( |
+ AutofillDriver::FORM_DATA_ACTION_FILL, kDefaultPageID, form, |
+ form.fields[1], card, 0); |
+ autofill_manager_->FillOrPreviewCreditCardForm( |
+ AutofillDriver::FORM_DATA_ACTION_FILL, kDefaultPageID, form, |
+ form.fields[2], card, 0); |
+ autofill_manager_->FillOrPreviewCreditCardForm( |
+ AutofillDriver::FORM_DATA_ACTION_FILL, kDefaultPageID, form, |
+ form.fields[3], card, 0); |
+#endif // defined(OS_IOS) |
+ |
// Manually fill out |form| so we can use it in OnFormSubmitted. |
for (size_t i = 0; i < form.fields.size(); ++i) { |
if (form.fields[i].name == ASCIIToUTF16("cardnumber")) |
@@ -3225,7 +3254,7 @@ TEST_F(AutofillManagerTest, DontOfferToSaveWalletCard) { |
} |
autofill_manager_->FillOrPreviewCreditCardForm( |
AutofillDriver::FORM_DATA_ACTION_FILL, kDefaultPageID, form, |
- form.fields[0], card, 0); |
+ form.fields[1], card, 0); |
autofill_manager_->OnUnmaskResponse(response); |
autofill_manager_->OnDidGetRealPan(AutofillClient::SUCCESS, |
"4012888888881881"); |