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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppAndCardsTest.java

Issue 2165163002: Autofill cards at the bottom of the PaymentRequest UI (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Static comparator and faux-parameterized test Created 4 years, 5 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/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppAndCardsTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppAndCardsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppAndCardsTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..137694bc9f9c0e6482ae3d4b04761842495f9078
--- /dev/null
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppAndCardsTest.java
@@ -0,0 +1,114 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.payments;
+
+import android.content.DialogInterface;
+import android.test.suitebuilder.annotation.MediumTest;
+
+import org.chromium.chrome.R;
+import org.chromium.chrome.browser.autofill.AutofillTestHelper;
+import org.chromium.chrome.browser.autofill.PersonalDataManager.AutofillProfile;
+import org.chromium.chrome.browser.autofill.PersonalDataManager.CreditCard;
+
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeoutException;
+
+/**
+ * A payment integration test for a merchant that requests payment via Bob Pay or cards.
+ */
+public class PaymentRequestPaymentAppAndCardsTest extends PaymentRequestTestBase {
+ public PaymentRequestPaymentAppAndCardsTest() {
+ super("payment_request_bobpay_and_cards_test.html");
+ }
+
+ @Override
+ public void onMainActivityStarted() throws InterruptedException, ExecutionException,
+ TimeoutException {
+ AutofillTestHelper helper = new AutofillTestHelper();
+ String billingAddressId = helper.setProfile(new AutofillProfile("", "https://example.com",
+ true, "Jon Doe", "Google", "340 Main St", "CA", "Los Angeles", "", "90291", "",
+ "US", "310-310-6000", "jon.doe@gmail.com", "en-US"));
+ // Mastercard card without a billing address.
+ helper.setCreditCard(new CreditCard("", "https://example.com", true, true, "Jon Doe",
+ "5454545454545454", "", "12", "2050", "mastercard", R.drawable.pr_mc,
+ ""));
+ // Visa card with complete set of information.
+ helper.setCreditCard(new CreditCard("", "https://example.com", true, true, "Jon Doe",
+ "4111111111111111", "", "12", "2050", "visa", R.drawable.pr_visa,
+ billingAddressId));
+ }
+
+ /**
+ * If Bob Pay does not have any instruments, show [visa, mastercard]. Here the payment app
+ * responds quickly.
+ */
+ @MediumTest
+ public void testNoInstrumentsInFastBobPay() throws InterruptedException, ExecutionException,
+ TimeoutException {
+ runTest(NO_INSTRUMENTS, IMMEDIATE_RESPONSE);
+ }
+
+ /**
+ * If Bob Pay does not have any instruments, show [visa, mastercard]. Here the payment app
+ * responds slowly.
+ */
+ @MediumTest
+ public void testNoInstrumentsInSlowBobPay() throws InterruptedException, ExecutionException,
+ TimeoutException {
+ runTest(NO_INSTRUMENTS, DELAYED_RESPONSE);
+ }
+
+ /**
+ * If Bob Pay has instruments, show [bobpay, visa, mastercard]. Here the payment app responds
+ * quickly.
+ */
+ @MediumTest
+ public void testHaveInstrumentsInFastBobPay() throws InterruptedException, ExecutionException,
+ TimeoutException {
+ runTest(HAVE_INSTRUMENTS, IMMEDIATE_RESPONSE);
+ }
+
+ /**
+ * If Bob Pay has instruments, show [bobpay, visa, mastercard]. Here the payment app responds
+ * slowly.
+ */
+ @MediumTest
+ public void testHaveInstrumentsInSlowBobPay() throws InterruptedException, ExecutionException,
+ TimeoutException {
+ runTest(HAVE_INSTRUMENTS, DELAYED_RESPONSE);
+ }
+
+ private void runTest(int instrumentPresence, int responseSpeed) throws InterruptedException,
+ ExecutionException, TimeoutException {
+ installPaymentApp(instrumentPresence, responseSpeed);
+ triggerUIAndWait(mReadyToPay);
+ clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput);
+
+ // Check the number of instruments.
+ assertEquals(
+ instrumentPresence == HAVE_INSTRUMENTS ? 3 : 2, getNumberOfPaymentInstruments());
+
+ // Check the labesl of the instruments.
+ int i = 0;
+ if (instrumentPresence == HAVE_INSTRUMENTS) {
+ assertEquals("Bob Pay", getPaymentInstrumentLabel(i++));
+ }
+ // \u00A0\u22EF is a non-breaking space followed by a midline ellipsis.
+ assertEquals("Visa\u00A0\u22EF1111\nJon Doe", getPaymentInstrumentLabel(i++));
+ assertEquals("MasterCard\u00A0\u22EF5454\nJon Doe", getPaymentInstrumentLabel(i++));
+
+ // Check the output of the selected instrument.
+ if (instrumentPresence == HAVE_INSTRUMENTS) {
+ clickAndWait(R.id.button_primary, mDismissed);
+ expectResultContains(new String[]{"https://bobpay.com", "\"transaction\"", "1337"});
+ } else {
+ clickAndWait(R.id.button_primary, mReadyForUnmaskInput);
+ setTextInCardUnmaskDialogAndWait(R.id.card_unmask_input, "123", mReadyToUnmask);
+ clickCardUnmaskButtonAndWait(DialogInterface.BUTTON_POSITIVE, mDismissed);
+ expectResultContains(new String[] {"Jon Doe", "4111111111111111", "12", "2050", "visa",
+ "123"});
+ }
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698