| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <string> | 5 #include <string> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
| 11 #include "chrome/browser/ui/views/payments/editor_view_controller.h" |
| 11 #include "chrome/browser/ui/views/payments/payment_request_browsertest_base.h" | 12 #include "chrome/browser/ui/views/payments/payment_request_browsertest_base.h" |
| 12 #include "chrome/browser/ui/views/payments/payment_request_dialog_view_ids.h" | 13 #include "chrome/browser/ui/views/payments/payment_request_dialog_view_ids.h" |
| 13 #include "chrome/browser/ui/views/payments/validating_textfield.h" | 14 #include "chrome/browser/ui/views/payments/validating_textfield.h" |
| 14 #include "components/autofill/core/browser/autofill_test_utils.h" | 15 #include "components/autofill/core/browser/autofill_test_utils.h" |
| 15 #include "components/autofill/core/browser/field_types.h" | 16 #include "components/autofill/core/browser/field_types.h" |
| 16 #include "components/autofill/core/browser/personal_data_manager.h" | 17 #include "components/autofill/core/browser/personal_data_manager.h" |
| 17 #include "components/autofill/core/browser/test_autofill_clock.h" | 18 #include "components/autofill/core/browser/test_autofill_clock.h" |
| 18 #include "components/payments/content/payment_request.h" | 19 #include "components/payments/content/payment_request.h" |
| 19 #include "components/payments/content/payment_request_spec.h" | 20 #include "components/payments/content/payment_request_spec.h" |
| 20 #include "components/strings/grit/components_strings.h" | 21 #include "components/strings/grit/components_strings.h" |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 autofill::CREDIT_CARD_NUMBER); | 184 autofill::CREDIT_CARD_NUMBER); |
| 184 // The card is expired. | 185 // The card is expired. |
| 185 SetComboboxValue(base::ASCIIToUTF16("01"), autofill::CREDIT_CARD_EXP_MONTH); | 186 SetComboboxValue(base::ASCIIToUTF16("01"), autofill::CREDIT_CARD_EXP_MONTH); |
| 186 SetComboboxValue(base::ASCIIToUTF16("2017"), | 187 SetComboboxValue(base::ASCIIToUTF16("2017"), |
| 187 autofill::CREDIT_CARD_EXP_4_DIGIT_YEAR); | 188 autofill::CREDIT_CARD_EXP_4_DIGIT_YEAR); |
| 188 | 189 |
| 189 ClickOnDialogViewAndWait(DialogViewID::EDITOR_SAVE_BUTTON); | 190 ClickOnDialogViewAndWait(DialogViewID::EDITOR_SAVE_BUTTON); |
| 190 | 191 |
| 191 EXPECT_FALSE(IsEditorTextfieldInvalid(autofill::CREDIT_CARD_NAME_FULL)); | 192 EXPECT_FALSE(IsEditorTextfieldInvalid(autofill::CREDIT_CARD_NAME_FULL)); |
| 192 EXPECT_FALSE(IsEditorTextfieldInvalid(autofill::CREDIT_CARD_NUMBER)); | 193 EXPECT_FALSE(IsEditorTextfieldInvalid(autofill::CREDIT_CARD_NUMBER)); |
| 193 // TODO(mathp): Both expiration fields should be marked as invalid when the | 194 EXPECT_TRUE(IsEditorComboboxInvalid(autofill::CREDIT_CARD_EXP_MONTH)); |
| 194 // card is expired. | 195 EXPECT_TRUE(IsEditorComboboxInvalid(autofill::CREDIT_CARD_EXP_4_DIGIT_YEAR)); |
| 195 EXPECT_FALSE(IsEditorComboboxInvalid(autofill::CREDIT_CARD_EXP_MONTH)); | 196 EXPECT_EQ(l10n_util::GetStringUTF16( |
| 196 EXPECT_FALSE(IsEditorComboboxInvalid(autofill::CREDIT_CARD_EXP_4_DIGIT_YEAR)); | 197 IDS_PAYMENTS_VALIDATION_INVALID_CREDIT_CARD_EXPIRED), |
| 198 GetErrorLabelForType(autofill::CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR)); |
| 197 | 199 |
| 198 autofill::PersonalDataManager* personal_data_manager = GetDataManager(); | 200 autofill::PersonalDataManager* personal_data_manager = GetDataManager(); |
| 199 EXPECT_EQ(0u, personal_data_manager->GetCreditCards().size()); | 201 EXPECT_EQ(0u, personal_data_manager->GetCreditCards().size()); |
| 200 } | 202 } |
| 201 | 203 |
| 202 IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest, | 204 IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest, |
| 203 EnteringNothingInARequiredField) { | 205 EnteringNothingInARequiredField) { |
| 204 autofill::TestAutofillClock test_clock; | 206 autofill::TestAutofillClock test_clock; |
| 205 test_clock.SetNow(kJune2017); | 207 test_clock.SetNow(kJune2017); |
| 206 | 208 |
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 520 autofill::ADDRESS_HOME_ZIP); | 522 autofill::ADDRESS_HOME_ZIP); |
| 521 SetEditorTextfieldValue(base::ASCIIToUTF16("5755555555"), | 523 SetEditorTextfieldValue(base::ASCIIToUTF16("5755555555"), |
| 522 autofill::PHONE_HOME_WHOLE_NUMBER); | 524 autofill::PHONE_HOME_WHOLE_NUMBER); |
| 523 | 525 |
| 524 // Come back to credit card editor. | 526 // Come back to credit card editor. |
| 525 ResetEventObserver(DialogEvent::BACK_NAVIGATION); | 527 ResetEventObserver(DialogEvent::BACK_NAVIGATION); |
| 526 ClickOnDialogViewAndWait(DialogViewID::SAVE_ADDRESS_BUTTON); | 528 ClickOnDialogViewAndWait(DialogViewID::SAVE_ADDRESS_BUTTON); |
| 527 | 529 |
| 528 // The billing address must be properly selected and valid. | 530 // The billing address must be properly selected and valid. |
| 529 views::Combobox* billing_combobox = static_cast<views::Combobox*>( | 531 views::Combobox* billing_combobox = static_cast<views::Combobox*>( |
| 530 dialog_view()->GetViewByID(autofill::ADDRESS_BILLING_LINE1)); | 532 dialog_view()->GetViewByID(EditorViewController::GetInputFieldViewId( |
| 533 autofill::ADDRESS_BILLING_LINE1))); |
| 531 ASSERT_NE(nullptr, billing_combobox); | 534 ASSERT_NE(nullptr, billing_combobox); |
| 532 EXPECT_FALSE(billing_combobox->invalid()); | 535 EXPECT_FALSE(billing_combobox->invalid()); |
| 533 | 536 |
| 534 // And then save credit card state and come back to payment sheet. | 537 // And then save credit card state and come back to payment sheet. |
| 535 ResetEventObserver(DialogEvent::BACK_TO_PAYMENT_SHEET_NAVIGATION); | 538 ResetEventObserver(DialogEvent::BACK_TO_PAYMENT_SHEET_NAVIGATION); |
| 536 | 539 |
| 537 // Verifying the data is in the DB. | 540 // Verifying the data is in the DB. |
| 538 autofill::PersonalDataManager* personal_data_manager = GetDataManager(); | 541 autofill::PersonalDataManager* personal_data_manager = GetDataManager(); |
| 539 personal_data_manager->AddObserver(&personal_data_observer_); | 542 personal_data_manager->AddObserver(&personal_data_observer_); |
| 540 | 543 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 588 IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest, EnteringEmptyData) { | 591 IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest, EnteringEmptyData) { |
| 589 InvokePaymentRequestUI(); | 592 InvokePaymentRequestUI(); |
| 590 | 593 |
| 591 OpenCreditCardEditorScreen(); | 594 OpenCreditCardEditorScreen(); |
| 592 | 595 |
| 593 // Setting empty data and unfocusing a required textfield will make it | 596 // Setting empty data and unfocusing a required textfield will make it |
| 594 // invalid. | 597 // invalid. |
| 595 SetEditorTextfieldValue(base::ASCIIToUTF16(""), | 598 SetEditorTextfieldValue(base::ASCIIToUTF16(""), |
| 596 autofill::CREDIT_CARD_NAME_FULL); | 599 autofill::CREDIT_CARD_NAME_FULL); |
| 597 | 600 |
| 598 ValidatingTextfield* textfield = | 601 ValidatingTextfield* textfield = static_cast<ValidatingTextfield*>( |
| 599 static_cast<ValidatingTextfield*>(dialog_view()->GetViewByID( | 602 dialog_view()->GetViewByID(EditorViewController::GetInputFieldViewId( |
| 600 static_cast<int>(autofill::CREDIT_CARD_NAME_FULL))); | 603 autofill::CREDIT_CARD_NAME_FULL))); |
| 601 EXPECT_TRUE(textfield); | 604 EXPECT_TRUE(textfield); |
| 602 EXPECT_TRUE(textfield->invalid()); | 605 EXPECT_TRUE(textfield->invalid()); |
| 603 } | 606 } |
| 604 | 607 |
| 605 } // namespace payments | 608 } // namespace payments |
| OLD | NEW |