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 4fc96048e44eb063707370d04d37059d0cca5a4e..9887bfe3939de7ac767bc9bc66eb095ec1761edb 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 |
@@ -92,6 +92,59 @@ IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest, EnteringValidData) { |
request->state()->selected_instrument()); |
} |
+IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest, |
+ EnterConfirmsValidData) { |
+ autofill::TestAutofillClock test_clock; |
+ test_clock.SetNow(kJune2017); |
+ |
+ InvokePaymentRequestUI(); |
+ |
+ // No instruments are available. |
+ PaymentRequest* request = GetPaymentRequests(GetActiveWebContents()).front(); |
+ EXPECT_EQ(0U, request->state()->available_instruments().size()); |
+ EXPECT_EQ(nullptr, request->state()->selected_instrument()); |
+ |
+ OpenCreditCardEditorScreen(); |
+ |
+ 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); |
+ |
+ // Verifying the data is in the DB. |
+ autofill::PersonalDataManager* personal_data_manager = GetDataManager(); |
+ personal_data_manager->AddObserver(&personal_data_observer_); |
+ |
+ ResetEventObserver(DialogEvent::BACK_TO_PAYMENT_SHEET_NAVIGATION); |
+ |
+ // Wait until the web database has been updated and the notification sent. |
+ base::RunLoop data_loop; |
+ EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()) |
+ .WillOnce(QuitMessageLoop(&data_loop)); |
+ views::View* editor_sheet = dialog_view()->GetViewByID( |
+ static_cast<int>(DialogViewID::CREDIT_CARD_EDITOR_SHEET)); |
+ editor_sheet->AcceleratorPressed( |
+ ui::Accelerator(ui::VKEY_RETURN, ui::EF_NONE)); |
+ data_loop.Run(); |
+ |
+ EXPECT_EQ(1u, personal_data_manager->GetCreditCards().size()); |
+ autofill::CreditCard* credit_card = |
+ personal_data_manager->GetCreditCards()[0]; |
+ EXPECT_EQ(5, credit_card->expiration_month()); |
+ EXPECT_EQ(2026, credit_card->expiration_year()); |
+ EXPECT_EQ(base::ASCIIToUTF16("1111"), credit_card->LastFourDigits()); |
+ EXPECT_EQ(base::ASCIIToUTF16("Bob Jones"), |
+ credit_card->GetRawInfo(autofill::CREDIT_CARD_NAME_FULL)); |
+ |
+ // One instrument is available and selected. |
+ EXPECT_EQ(1U, request->state()->available_instruments().size()); |
+ EXPECT_EQ(request->state()->available_instruments().back().get(), |
+ request->state()->selected_instrument()); |
+} |
+ |
IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest, CancelFromEditor) { |
InvokePaymentRequestUI(); |