Index: chrome/browser/ui/views/payments/credit_card_editor_view_controller_browsertest.cc |
diff --git a/chrome/browser/ui/views/payments/credit_card_editor_view_controller_browsertest.cc b/chrome/browser/ui/views/payments/credit_card_editor_view_controller_browsertest.cc |
index 0047e430741f85781d45848b2aa706d66d1e7a01..f132b5a9e3b41b814a44698b4a9d1ea2ec5d70cc 100644 |
--- a/chrome/browser/ui/views/payments/credit_card_editor_view_controller_browsertest.cc |
+++ b/chrome/browser/ui/views/payments/credit_card_editor_view_controller_browsertest.cc |
@@ -176,6 +176,9 @@ IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest, |
autofill::TestAutofillClock test_clock; |
test_clock.SetNow(kJune2017); |
+ autofill::AutofillProfile billing_profile(autofill::test::GetFullProfile()); |
+ AddAutofillProfile(billing_profile); |
+ |
InvokePaymentRequestUI(); |
OpenCreditCardEditorScreen(); |
@@ -184,13 +187,14 @@ IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest, |
autofill::CREDIT_CARD_NAME_FULL); |
SetEditorTextfieldValue(base::ASCIIToUTF16("4111111111111111"), |
autofill::CREDIT_CARD_NUMBER); |
+ |
+ SelectBillingAddress(billing_profile.guid()); |
+ |
// The card is expired. |
SetComboboxValue(base::ASCIIToUTF16("01"), autofill::CREDIT_CARD_EXP_MONTH); |
SetComboboxValue(base::ASCIIToUTF16("2017"), |
autofill::CREDIT_CARD_EXP_4_DIGIT_YEAR); |
- ClickOnDialogViewAndWait(DialogViewID::EDITOR_SAVE_BUTTON); |
- |
EXPECT_FALSE(IsEditorTextfieldInvalid(autofill::CREDIT_CARD_NAME_FULL)); |
EXPECT_FALSE(IsEditorTextfieldInvalid(autofill::CREDIT_CARD_NUMBER)); |
EXPECT_TRUE(IsEditorComboboxInvalid(autofill::CREDIT_CARD_EXP_MONTH)); |
@@ -199,8 +203,18 @@ IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest, |
IDS_PAYMENTS_VALIDATION_INVALID_CREDIT_CARD_EXPIRED), |
GetErrorLabelForType(autofill::CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR)); |
+ views::View* save_button = dialog_view()->GetViewByID( |
+ static_cast<int>(DialogViewID::EDITOR_SAVE_BUTTON)); |
+ |
+ EXPECT_FALSE(save_button->enabled()); |
+ ClickOnDialogViewAndWait(DialogViewID::EDITOR_SAVE_BUTTON); |
+ |
autofill::PersonalDataManager* personal_data_manager = GetDataManager(); |
EXPECT_EQ(0u, personal_data_manager->GetCreditCards().size()); |
+ |
+ SetComboboxValue(base::ASCIIToUTF16("12"), autofill::CREDIT_CARD_EXP_MONTH); |
+ |
+ EXPECT_TRUE(save_button->enabled()); |
} |
IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest, EditingMaskedCard) { |
@@ -783,4 +797,45 @@ IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest, EnteringEmptyData) { |
EXPECT_FALSE(textfield->IsValid()); |
} |
+IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest, DoneButtonDisabled) { |
+ autofill::TestAutofillClock test_clock; |
+ test_clock.SetNow(kJune2017); |
+ InvokePaymentRequestUI(); |
+ |
+ autofill::AutofillProfile billing_profile(autofill::test::GetFullProfile()); |
+ AddAutofillProfile(billing_profile); |
+ |
+ OpenCreditCardEditorScreen(); |
+ |
+ views::View* save_button = dialog_view()->GetViewByID( |
+ static_cast<int>(DialogViewID::EDITOR_SAVE_BUTTON)); |
+ |
+ EXPECT_FALSE(save_button->enabled()); |
+ |
+ // Set all fields but one: |
+ SetEditorTextfieldValue(base::ASCIIToUTF16("Bob Jones"), |
+ autofill::CREDIT_CARD_NAME_FULL); |
+ SetEditorTextfieldValue(base::ASCIIToUTF16("4111111111111111"), |
+ autofill::CREDIT_CARD_NUMBER); |
+ SetComboboxValue(base::ASCIIToUTF16("05"), autofill::CREDIT_CARD_EXP_MONTH); |
+ SetComboboxValue(base::ASCIIToUTF16("2026"), |
+ autofill::CREDIT_CARD_EXP_4_DIGIT_YEAR); |
+ |
+ // Still disabled. |
+ EXPECT_FALSE(save_button->enabled()); |
+ |
+ // Set the last field. |
+ SelectBillingAddress(billing_profile.guid()); |
+ |
+ // Should be good to go. |
+ EXPECT_TRUE(save_button->enabled()); |
+ |
+ // Change a field to something invalid, to make sure it works both ways. |
+ SetEditorTextfieldValue(base::ASCIIToUTF16("Ni!"), |
+ autofill::CREDIT_CARD_NUMBER); |
+ |
+ // Back to being disabled. |
+ EXPECT_FALSE(save_button->enabled()); |
+} |
+ |
} // namespace payments |