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

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

Issue 2614193002: [Payments] List incomplete addresses in the billing address dropdown (Closed)
Patch Set: fix nits Created 3 years, 11 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
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/preferences/autofill/AutofillProfileBridge.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestBillingAddressTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestBillingAddressTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestBillingAddressTest.java
index bdd63b079c657bd9972dfa2a66ab9e4fe473d7da..2dc7fd01440570132782f229cadc4685925f779b 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestBillingAddressTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestBillingAddressTest.java
@@ -23,7 +23,7 @@ public class PaymentRequestBillingAddressTest extends PaymentRequestTestBase {
* The index at which the option to add a billing address is located in the billing address
* selection dropdown.
*/
- private static final int ADD_BILLING_ADDRESS = 3;
+ private static final int ADD_BILLING_ADDRESS = 7;
/** The index of the billing address dropdown in the card editor. */
private static final int BILLING_ADDRESS_DROPDOWN_INDEX = 2;
@@ -48,15 +48,42 @@ public class PaymentRequestBillingAddressTest extends PaymentRequestTestBase {
String profile3 = helper.setProfile(new AutofillProfile("", "https://example.com", true,
"Tom Doe", "Google", "340 Main St", "CA", "Los Angeles", "", "90291", "", "US",
"310-310-6000", "jon.doe@gmail.com", "en-US"));
+
+ // Incomplete profile (invalid address).
+ String profile4 = helper.setProfile(new AutofillProfile("", "https://example.com", true,
+ "Bart Doe", "Google", "340 Main St", "CA", "", "", "90291", "", "US",
+ "310-310-6000", "jon.doe@gmail.com", "en-US"));
+
+ // Incomplete profile (missing phone number)
+ String profile5 = helper.setProfile(new AutofillProfile("", "https://example.com", true,
+ "Lisa Doe", "Google", "340 Main St", "CA", "Los Angeles", "", "90291", "", "US", "",
+ "jon.doe@gmail.com", "en-US"));
+
+ // Incomplete profile (missing recipient).
+ String profile6 = helper.setProfile(new AutofillProfile("", "https://example.com", true, "",
+ "Google", "340 Main St", "CA", "Los Angeles", "", "90291", "", "US", "310-310-6000",
+ "jon.doe@gmail.com", "en-US"));
+
+ // Incomplete profile (need more information).
+ String profile7 = helper.setProfile(new AutofillProfile("", "https://example.com", true,
+ "Maggie Doe", "Google", "340 Main St", "CA", "", "", "90291", "", "US", "",
+ "jon.doe@gmail.com", "en-US"));
+
// This card has no billing address selected.
helper.setCreditCard(new CreditCard("", "https://example.com", true, true, "Jane Doe",
- "4242424242424242", "1111", "12", "2050", "visa", R.drawable.pr_visa,
- "" /* billingAddressId */, "" /* serverId */));
+ "4242424242424242", "1111", "12", "2050", "visa", R.drawable.pr_visa, profile5,
+ "" /* serverId */));
- // Assign use stats so that profile2 has the highest frecency and profile3 has the lowest.
+ // Assign use stats so that incomplete profiles have the highest frecency, profile2 has the
+ // highest frecency and profile3 has the lowest among the complete profiles, and profile5
+ // has the highest frecency and profile4 has the lowest among the incomplete profiles.
helper.setProfileUseStatsForTesting(profile1, 5, 5);
helper.setProfileUseStatsForTesting(profile2, 10, 10);
helper.setProfileUseStatsForTesting(profile3, 1, 1);
+ helper.setProfileUseStatsForTesting(profile4, 15, 15);
+ helper.setProfileUseStatsForTesting(profile5, 30, 30);
+ helper.setProfileUseStatsForTesting(profile6, 25, 25);
+ helper.setProfileUseStatsForTesting(profile7, 20, 20);
}
/** Verifies the format of the billing address suggestions when adding a new credit card. */
@@ -74,7 +101,7 @@ public class PaymentRequestBillingAddressTest extends PaymentRequestTestBase {
// The billing address suggestions should include only the name, address, city, state and
// zip code of the profile.
assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX)
- .equals("Rob Doe, 340 Main St, Los Angeles, CA 90291"));
+ .equals("Rob Doe, 340 Main St, Los Angeles, CA 90291"));
}
/**
@@ -89,9 +116,9 @@ public class PaymentRequestBillingAddressTest extends PaymentRequestTestBase {
clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput);
clickInPaymentMethodAndWait(R.id.payments_add_option_button, mReadyToEdit);
- // There should only be 4 suggestions, the 3 saved addresses and the option to add a new
+ // There should only be 8 suggestions, the 7 saved addresses and the option to add a new
// address.
- assertEquals(4, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX));
+ assertEquals(8, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX));
}
/**
@@ -114,9 +141,9 @@ public class PaymentRequestBillingAddressTest extends PaymentRequestTestBase {
// Cancel the creation of a new billing address.
clickInEditorAndWait(R.id.payments_edit_cancel_button, mReadyToEdit);
- // There should still only be 4 suggestions, the 3 saved addresses and the option to add a
+ // There should still only be 8 suggestions, the 7 saved addresses and the option to add a
// new address.
- assertEquals(4, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX));
+ assertEquals(8, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX));
}
/**
@@ -133,7 +160,7 @@ public class PaymentRequestBillingAddressTest extends PaymentRequestTestBase {
// Jon Doe is selected as the billing address.
assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX)
- .equals("Jon Doe, 340 Main St, Los Angeles, CA 90291"));
+ .equals("Jon Doe, 340 Main St, Los Angeles, CA 90291"));
// Select the "+ ADD ADDRESS" option for the billing address.
setSpinnerSelectionsInCardEditorAndWait(
@@ -144,7 +171,7 @@ public class PaymentRequestBillingAddressTest extends PaymentRequestTestBase {
// Jon Doe is STILL selected as the billing address.
assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX)
- .equals("Jon Doe, 340 Main St, Los Angeles, CA 90291"));
+ .equals("Jon Doe, 340 Main St, Los Angeles, CA 90291"));
}
/**
@@ -162,7 +189,7 @@ public class PaymentRequestBillingAddressTest extends PaymentRequestTestBase {
// Now in Card Editor to add a billing address. "Select" is selected in the dropdown.
assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX)
- .equals("Select"));
+ .equals("Select"));
// Select the "+ ADD ADDRESS" option for the billing address.
setSpinnerSelectionsInCardEditorAndWait(
@@ -173,7 +200,7 @@ public class PaymentRequestBillingAddressTest extends PaymentRequestTestBase {
// "Select" is STILL selected as the billing address.
assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX)
- .equals("Select"));
+ .equals("Select"));
}
/**
@@ -188,8 +215,8 @@ public class PaymentRequestBillingAddressTest extends PaymentRequestTestBase {
clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput);
clickInPaymentMethodAndWait(R.id.payments_add_option_button, mReadyToEdit);
- // There should be 4 suggestions, the 3 saved addresses and the option to add a new address.
- assertEquals(4, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX));
+ // There should be 8 suggestions, the 7 saved addresses and the option to add a new address.
+ assertEquals(8, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX));
// The billing address suggestions should be ordered by frecency.
assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX,
@@ -199,7 +226,7 @@ public class PaymentRequestBillingAddressTest extends PaymentRequestTestBase {
assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX,
2).equals("Tom Doe, 340 Main St, Los Angeles, CA 90291"));
assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX,
- 3).equals("Add address"));
+ 7).equals("Add address"));
}
/**
@@ -222,9 +249,9 @@ public class PaymentRequestBillingAddressTest extends PaymentRequestTestBase {
"CA", "90291", "999-999-9999"}, mEditorTextUpdate);
clickInEditorAndWait(R.id.payments_edit_done_button, mReadyToEdit);
- // There should be 5 suggestions, the 3 initial addresses, the newly added address and the
+ // There should be 9 suggestions, the 7 initial addresses, the newly added address and the
// option to add a new address.
- assertEquals(5, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX));
+ assertEquals(9, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX));
// The fist suggestion should be the newly added address.
assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX,
@@ -238,7 +265,7 @@ public class PaymentRequestBillingAddressTest extends PaymentRequestTestBase {
assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX,
3).equals("Tom Doe, 340 Main St, Los Angeles, CA 90291"));
assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX,
- 4).equals("Add address"));
+ 8).equals("Add address"));
}
/**
@@ -262,12 +289,82 @@ public class PaymentRequestBillingAddressTest extends PaymentRequestTestBase {
clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput);
clickInPaymentMethodAndWait(R.id.payments_add_option_button, mReadyToEdit);
- // There should be 5 suggestions, the 3 initial addresses, the newly added address and the
+ // There should be 9 suggestions, the 7 initial addresses, the newly added address and the
// option to add a new address.
- assertEquals(5, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX));
+ assertEquals(9, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX));
// The new address should be suggested first.
assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX,
0).equals("Seb Doe, 340 Main St, Los Angeles, CA 90291"));
}
+
+ @MediumTest
+ @Feature({"Payments"})
+ public void testSelectIncompleteBillingAddress_EditComplete()
+ throws InterruptedException, ExecutionException, TimeoutException {
+ triggerUIAndWait(mReadyToPay);
+ // Edit the second card.
+ clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput);
+ clickOnPaymentMethodSuggestionOptionAndWait(1, mReadyForInput);
+
+ // Now "Select" is selected in the dropdown.
+ assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX)
+ .equals("Select"));
+
+ // The incomplete addresses in the dropdown contain edit required messages.
+ assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX,
+ 3).endsWith("Phone number required"));
+ assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX,
+ 4).endsWith("Recipient required"));
+ assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX,
+ 5).endsWith("More information required"));
+ assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX,
+ 6).endsWith("Invalid address"));
+
+ // Selects the fourth billing addresss that misses phone number brings up the address
+ // editor.
+ setSpinnerSelectionsInCardEditorAndWait(new int[] {DECEMBER, NEXT_YEAR, 3}, mReadyToEdit);
+ setTextInEditorAndWait(new String[] {"Lisa Doe", "Google", "340 Main St", "Los Angeles",
+ "CA", "90291", "999-999-9999"}, mEditorTextUpdate);
+ clickInEditorAndWait(R.id.payments_edit_done_button, mReadyToEdit);
+
+ // The newly completed address must be selected and put at the top of the dropdown.
+ assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX)
+ .equals("Lisa Doe, 340 Main St, Los Angeles, CA 90291"));
+ assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX,
+ 0).equals("Lisa Doe, 340 Main St, Los Angeles, CA 90291"));
+ }
+
+ @MediumTest
+ @Feature({"Payments"})
+ public void testSelectIncompleteBillingAddress_EditCancel()
+ throws InterruptedException, ExecutionException, TimeoutException {
+ triggerUIAndWait(mReadyToPay);
+ // Edit the only complete card.
+ clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput);
+ clickInPaymentMethodAndWait(R.id.payments_open_editor_pencil_button, mReadyToEdit);
+
+ // Jon Doe is selected as the billing address.
+ assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX)
+ .equals("Jon Doe, 340 Main St, Los Angeles, CA 90291"));
+
+ // The incomplete addresses in the dropdown contain edit required messages.
+ assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX,
+ 3).endsWith("Phone number required"));
+ assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX,
+ 4).endsWith("Recipient required"));
+ assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX,
+ 5).endsWith("More information required"));
+ assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX,
+ 6).endsWith("Invalid address"));
+
+ // Selects the fifth billing addresss that misses recipient name brings up the address
+ // editor.
+ setSpinnerSelectionsInCardEditorAndWait(new int[] {DECEMBER, NEXT_YEAR, 4}, mReadyToEdit);
+ clickInEditorAndWait(R.id.payments_edit_cancel_button, mReadyToEdit);
+
+ // The previous selected address should be selected after canceling out from edit.
+ assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_INDEX)
+ .equals("Jon Doe, 340 Main St, Los Angeles, CA 90291"));
+ }
}
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/preferences/autofill/AutofillProfileBridge.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698