Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2806)

Unified Diff: chrome/browser/ui/views/payments/payment_request_credit_card_editor_interactive_uitest.cc

Issue 2689363004: [Payments] Add combobox support to editors. (Closed)
Patch Set: re-enable test, addressed comments Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/payments/payment_request_credit_card_editor_interactive_uitest.cc
diff --git a/chrome/browser/ui/views/payments/payment_request_credit_card_editor_interactive_uitest.cc b/chrome/browser/ui/views/payments/payment_request_credit_card_editor_interactive_uitest.cc
index 2d98466f3c9b92782b60faaf03a399b04488a820..ac01aa10192528760f35eef1e5bca04a663197c8 100644
--- a/chrome/browser/ui/views/payments/payment_request_credit_card_editor_interactive_uitest.cc
+++ b/chrome/browser/ui/views/payments/payment_request_credit_card_editor_interactive_uitest.cc
@@ -4,33 +4,56 @@
#include "base/macros.h"
#include "base/strings/utf_string_conversions.h"
+#include "base/time/time.h"
#include "chrome/browser/ui/views/payments/payment_request_dialog_view_ids.h"
#include "chrome/browser/ui/views/payments/payment_request_interactive_uitest_base.h"
#include "chrome/browser/ui/views/payments/validating_textfield.h"
#include "components/autofill/core/browser/field_types.h"
#include "components/autofill/core/browser/personal_data_manager.h"
+#include "components/autofill/core/browser/personal_data_manager_observer.h"
+#include "components/autofill/core/browser/test_autofill_clock.h"
#include "components/payments/payment_request.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
namespace payments {
+namespace {
+
+const base::Time kJune2017 = base::Time::FromDoubleT(1497552271);
+
+ACTION_P(QuitMessageLoop, loop) {
+ loop->Quit();
+}
+
+class PersonalDataLoadedObserverMock
+ : public autofill::PersonalDataManagerObserver {
+ public:
+ PersonalDataLoadedObserverMock() {}
+ virtual ~PersonalDataLoadedObserverMock() {}
+
+ MOCK_METHOD0(OnPersonalDataChanged, void());
+};
+
+} // namespace
+
class PaymentRequestCreditCardEditorTest
: public PaymentRequestInteractiveTestBase {
protected:
PaymentRequestCreditCardEditorTest()
: PaymentRequestInteractiveTestBase(
"/payment_request_no_shipping_test.html") {}
+
+ PersonalDataLoadedObserverMock personal_data_observer_;
+
private:
DISALLOW_COPY_AND_ASSIGN(PaymentRequestCreditCardEditorTest);
};
-// Flaky on Win. http://crbug.com/691185
-#if defined(OS_WIN)
-#define MAYBE_EnteringValidData DISABLED_EnteringValidData
-#else
-#define MAYBE_EnteringValidData EnteringValidData
-#endif
-IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest,
- MAYBE_EnteringValidData) {
+IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest, EnteringValidData) {
+ autofill::TestAutofillClock test_clock;
+ test_clock.SetNow(kJune2017);
+
InvokePaymentRequestUI();
OpenPaymentMethodScreen();
@@ -41,29 +64,73 @@ IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest,
autofill::CREDIT_CARD_NAME_FULL);
SetEditorTextfieldValue(base::ASCIIToUTF16("4111111111111111"),
autofill::CREDIT_CARD_NUMBER);
- SetEditorTextfieldValue(base::ASCIIToUTF16("05/45"),
- autofill::CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR);
+ 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 =
+ GetPaymentRequests(GetActiveWebContents())[0]->personal_data_manager();
+ personal_data_manager->AddObserver(&personal_data_observer_);
ResetEventObserver(DialogEvent::BACK_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));
ClickOnDialogViewAndWait(DialogViewID::EDITOR_SAVE_BUTTON);
+ data_loop.Run();
- // Verifying the data is in the DB.
- autofill::PersonalDataManager* personal_data_manager =
- GetPaymentRequests(GetActiveWebContents())[0]->personal_data_manager();
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(2045, credit_card->expiration_year());
- EXPECT_EQ(2045, credit_card->expiration_year());
+ 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));
}
IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest,
- EnteringInvalidData) {
+ EnteringExpiredCard) {
+ autofill::TestAutofillClock test_clock;
+ test_clock.SetNow(kJune2017);
+
+ InvokePaymentRequestUI();
+
+ OpenPaymentMethodScreen();
+
+ OpenCreditCardEditorScreen();
+
+ SetEditorTextfieldValue(base::ASCIIToUTF16("Bob Jones"),
+ autofill::CREDIT_CARD_NAME_FULL);
+ SetEditorTextfieldValue(base::ASCIIToUTF16("4111111111111111"),
+ autofill::CREDIT_CARD_NUMBER);
+ // 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));
+ // TODO(mathp): Both expiration fields should be marked as invalid when the
+ // card is expired.
+ EXPECT_FALSE(IsEditorComboboxInvalid(autofill::CREDIT_CARD_EXP_MONTH));
+ EXPECT_FALSE(IsEditorComboboxInvalid(autofill::CREDIT_CARD_EXP_4_DIGIT_YEAR));
+
+ autofill::PersonalDataManager* personal_data_manager =
+ GetPaymentRequests(GetActiveWebContents())[0]->personal_data_manager();
+ EXPECT_EQ(0u, personal_data_manager->GetCreditCards().size());
+}
+
+IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest,
+ EnteringInvalidCardNumber) {
+ autofill::TestAutofillClock test_clock;
+ test_clock.SetNow(kJune2017);
+
InvokePaymentRequestUI();
OpenPaymentMethodScreen();
@@ -74,15 +141,16 @@ IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest,
autofill::CREDIT_CARD_NAME_FULL);
SetEditorTextfieldValue(base::ASCIIToUTF16("41111111invalidcard"),
autofill::CREDIT_CARD_NUMBER);
- SetEditorTextfieldValue(base::ASCIIToUTF16("05/45"),
- autofill::CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR);
+ SetComboboxValue(base::ASCIIToUTF16("05"), autofill::CREDIT_CARD_EXP_MONTH);
+ SetComboboxValue(base::ASCIIToUTF16("2026"),
+ autofill::CREDIT_CARD_EXP_4_DIGIT_YEAR);
ClickOnDialogViewAndWait(DialogViewID::EDITOR_SAVE_BUTTON);
EXPECT_FALSE(IsEditorTextfieldInvalid(autofill::CREDIT_CARD_NAME_FULL));
EXPECT_TRUE(IsEditorTextfieldInvalid(autofill::CREDIT_CARD_NUMBER));
- EXPECT_FALSE(
- IsEditorTextfieldInvalid(autofill::CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR));
+ EXPECT_FALSE(IsEditorComboboxInvalid(autofill::CREDIT_CARD_EXP_MONTH));
+ EXPECT_FALSE(IsEditorComboboxInvalid(autofill::CREDIT_CARD_EXP_4_DIGIT_YEAR));
autofill::PersonalDataManager* personal_data_manager =
GetPaymentRequests(GetActiveWebContents())[0]->personal_data_manager();

Powered by Google App Engine
This is Rietveld 408576698