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

Side by Side 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 unified diff | 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 »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 package org.chromium.chrome.browser.payments; 5 package org.chromium.chrome.browser.payments;
6 6
7 import android.support.test.filters.MediumTest; 7 import android.support.test.filters.MediumTest;
8 8
9 import org.chromium.base.test.util.Feature; 9 import org.chromium.base.test.util.Feature;
10 import org.chromium.chrome.R; 10 import org.chromium.chrome.R;
11 import org.chromium.chrome.browser.autofill.AutofillTestHelper; 11 import org.chromium.chrome.browser.autofill.AutofillTestHelper;
12 import org.chromium.chrome.browser.autofill.PersonalDataManager.AutofillProfile; 12 import org.chromium.chrome.browser.autofill.PersonalDataManager.AutofillProfile;
13 import org.chromium.chrome.browser.autofill.PersonalDataManager.CreditCard; 13 import org.chromium.chrome.browser.autofill.PersonalDataManager.CreditCard;
14 14
15 import java.util.concurrent.ExecutionException; 15 import java.util.concurrent.ExecutionException;
16 import java.util.concurrent.TimeoutException; 16 import java.util.concurrent.TimeoutException;
17 17
18 /** 18 /**
19 * A payment integration test for biling addresses. 19 * A payment integration test for biling addresses.
20 */ 20 */
21 public class PaymentRequestBillingAddressTest extends PaymentRequestTestBase { 21 public class PaymentRequestBillingAddressTest extends PaymentRequestTestBase {
22 /* 22 /*
23 * The index at which the option to add a billing address is located in the billing address 23 * The index at which the option to add a billing address is located in the billing address
24 * selection dropdown. 24 * selection dropdown.
25 */ 25 */
26 private static final int ADD_BILLING_ADDRESS = 3; 26 private static final int ADD_BILLING_ADDRESS = 7;
27 27
28 /** The index of the billing address dropdown in the card editor. */ 28 /** The index of the billing address dropdown in the card editor. */
29 private static final int BILLING_ADDRESS_DROPDOWN_INDEX = 2; 29 private static final int BILLING_ADDRESS_DROPDOWN_INDEX = 2;
30 30
31 public PaymentRequestBillingAddressTest() { 31 public PaymentRequestBillingAddressTest() {
32 super("payment_request_free_shipping_test.html"); 32 super("payment_request_free_shipping_test.html");
33 } 33 }
34 34
35 @Override 35 @Override
36 public void onMainActivityStarted() 36 public void onMainActivityStarted()
37 throws InterruptedException, ExecutionException, TimeoutException { 37 throws InterruptedException, ExecutionException, TimeoutException {
38 AutofillTestHelper helper = new AutofillTestHelper(); 38 AutofillTestHelper helper = new AutofillTestHelper();
39 String profile1 = helper.setProfile(new AutofillProfile("", "https://exa mple.com", true, 39 String profile1 = helper.setProfile(new AutofillProfile("", "https://exa mple.com", true,
40 "Jon Doe", "Google", "340 Main St", "CA", "Los Angeles", "", "90 291", "", "US", 40 "Jon Doe", "Google", "340 Main St", "CA", "Los Angeles", "", "90 291", "", "US",
41 "310-310-6000", "jon.doe@gmail.com", "en-US")); 41 "310-310-6000", "jon.doe@gmail.com", "en-US"));
42 helper.setCreditCard(new CreditCard("", "https://example.com", true, tru e, "Jon Doe", 42 helper.setCreditCard(new CreditCard("", "https://example.com", true, tru e, "Jon Doe",
43 "4111111111111111", "1111", "12", "2050", "visa", R.drawable.pr_ visa, profile1, 43 "4111111111111111", "1111", "12", "2050", "visa", R.drawable.pr_ visa, profile1,
44 "" /* serverId */)); 44 "" /* serverId */));
45 String profile2 = helper.setProfile(new AutofillProfile("", "https://exa mple.com", true, 45 String profile2 = helper.setProfile(new AutofillProfile("", "https://exa mple.com", true,
46 "Rob Doe", "Google", "340 Main St", "CA", "Los Angeles", "", "90 291", "", "US", 46 "Rob Doe", "Google", "340 Main St", "CA", "Los Angeles", "", "90 291", "", "US",
47 "310-310-6000", "jon.doe@gmail.com", "en-US")); 47 "310-310-6000", "jon.doe@gmail.com", "en-US"));
48 String profile3 = helper.setProfile(new AutofillProfile("", "https://exa mple.com", true, 48 String profile3 = helper.setProfile(new AutofillProfile("", "https://exa mple.com", true,
49 "Tom Doe", "Google", "340 Main St", "CA", "Los Angeles", "", "90 291", "", "US", 49 "Tom Doe", "Google", "340 Main St", "CA", "Los Angeles", "", "90 291", "", "US",
50 "310-310-6000", "jon.doe@gmail.com", "en-US")); 50 "310-310-6000", "jon.doe@gmail.com", "en-US"));
51
52 // Incomplete profile (invalid address).
53 String profile4 = helper.setProfile(new AutofillProfile("", "https://exa mple.com", true,
54 "Bart Doe", "Google", "340 Main St", "CA", "", "", "90291", "", "US",
55 "310-310-6000", "jon.doe@gmail.com", "en-US"));
56
57 // Incomplete profile (missing phone number)
58 String profile5 = helper.setProfile(new AutofillProfile("", "https://exa mple.com", true,
59 "Lisa Doe", "Google", "340 Main St", "CA", "Los Angeles", "", "9 0291", "", "US", "",
60 "jon.doe@gmail.com", "en-US"));
61
62 // Incomplete profile (missing recipient).
63 String profile6 = helper.setProfile(new AutofillProfile("", "https://exa mple.com", true, "",
64 "Google", "340 Main St", "CA", "Los Angeles", "", "90291", "", " US", "310-310-6000",
65 "jon.doe@gmail.com", "en-US"));
66
67 // Incomplete profile (need more information).
68 String profile7 = helper.setProfile(new AutofillProfile("", "https://exa mple.com", true,
69 "Maggie Doe", "Google", "340 Main St", "CA", "", "", "90291", "" , "US", "",
70 "jon.doe@gmail.com", "en-US"));
71
51 // This card has no billing address selected. 72 // This card has no billing address selected.
52 helper.setCreditCard(new CreditCard("", "https://example.com", true, tru e, "Jane Doe", 73 helper.setCreditCard(new CreditCard("", "https://example.com", true, tru e, "Jane Doe",
53 "4242424242424242", "1111", "12", "2050", "visa", R.drawable.pr_ visa, 74 "4242424242424242", "1111", "12", "2050", "visa", R.drawable.pr_ visa, profile5,
54 "" /* billingAddressId */, "" /* serverId */)); 75 "" /* serverId */));
55 76
56 // Assign use stats so that profile2 has the highest frecency and profil e3 has the lowest. 77 // Assign use stats so that incomplete profiles have the highest frecenc y, profile2 has the
78 // highest frecency and profile3 has the lowest among the complete profi les, and profile5
79 // has the highest frecency and profile4 has the lowest among the incomp lete profiles.
57 helper.setProfileUseStatsForTesting(profile1, 5, 5); 80 helper.setProfileUseStatsForTesting(profile1, 5, 5);
58 helper.setProfileUseStatsForTesting(profile2, 10, 10); 81 helper.setProfileUseStatsForTesting(profile2, 10, 10);
59 helper.setProfileUseStatsForTesting(profile3, 1, 1); 82 helper.setProfileUseStatsForTesting(profile3, 1, 1);
83 helper.setProfileUseStatsForTesting(profile4, 15, 15);
84 helper.setProfileUseStatsForTesting(profile5, 30, 30);
85 helper.setProfileUseStatsForTesting(profile6, 25, 25);
86 helper.setProfileUseStatsForTesting(profile7, 20, 20);
60 } 87 }
61 88
62 /** Verifies the format of the billing address suggestions when adding a new credit card. */ 89 /** Verifies the format of the billing address suggestions when adding a new credit card. */
63 @MediumTest 90 @MediumTest
64 @Feature({"Payments"}) 91 @Feature({"Payments"})
65 public void testNewCardBillingAddressFormat() 92 public void testNewCardBillingAddressFormat()
66 throws InterruptedException, ExecutionException, TimeoutException { 93 throws InterruptedException, ExecutionException, TimeoutException {
67 triggerUIAndWait(mReadyToPay); 94 triggerUIAndWait(mReadyToPay);
68 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput); 95 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput);
69 clickInPaymentMethodAndWait(R.id.payments_add_option_button, mReadyToEdi t); 96 clickInPaymentMethodAndWait(R.id.payments_add_option_button, mReadyToEdi t);
70 setTextInCardEditorAndWait(new String[] {"5454-5454-5454-5454", "Bob"}, mEditorTextUpdate); 97 setTextInCardEditorAndWait(new String[] {"5454-5454-5454-5454", "Bob"}, mEditorTextUpdate);
71 setSpinnerSelectionsInCardEditorAndWait( 98 setSpinnerSelectionsInCardEditorAndWait(
72 new int[] {DECEMBER, NEXT_YEAR, FIRST_BILLING_ADDRESS}, 99 new int[] {DECEMBER, NEXT_YEAR, FIRST_BILLING_ADDRESS},
73 mBillingAddressChangeProcessed); 100 mBillingAddressChangeProcessed);
74 // The billing address suggestions should include only the name, address , city, state and 101 // The billing address suggestions should include only the name, address , city, state and
75 // zip code of the profile. 102 // zip code of the profile.
76 assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_ INDEX) 103 assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_ INDEX)
77 .equals("Rob Doe, 340 Main St, Los Angeles, CA 90291" )); 104 .equals("Rob Doe, 340 Main St, Los Angeles, CA 90291"));
78 } 105 }
79 106
80 /** 107 /**
81 * Verifies that the correct number of billing address suggestions are shown when adding a new 108 * Verifies that the correct number of billing address suggestions are shown when adding a new
82 * credit card. 109 * credit card.
83 */ 110 */
84 @MediumTest 111 @MediumTest
85 @Feature({"Payments"}) 112 @Feature({"Payments"})
86 public void testNumberOfBillingAddressSuggestions() 113 public void testNumberOfBillingAddressSuggestions()
87 throws InterruptedException, ExecutionException, TimeoutException { 114 throws InterruptedException, ExecutionException, TimeoutException {
88 triggerUIAndWait(mReadyToPay); 115 triggerUIAndWait(mReadyToPay);
89 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput); 116 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput);
90 clickInPaymentMethodAndWait(R.id.payments_add_option_button, mReadyToEdi t); 117 clickInPaymentMethodAndWait(R.id.payments_add_option_button, mReadyToEdi t);
91 118
92 // There should only be 4 suggestions, the 3 saved addresses and the opt ion to add a new 119 // There should only be 8 suggestions, the 7 saved addresses and the opt ion to add a new
93 // address. 120 // address.
94 assertEquals(4, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX)); 121 assertEquals(8, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX));
95 } 122 }
96 123
97 /** 124 /**
98 * Verifies that the correct number of billing address suggestions are shown when adding a new 125 * Verifies that the correct number of billing address suggestions are shown when adding a new
99 * credit card, even after cancelling out of adding a new billing address. 126 * credit card, even after cancelling out of adding a new billing address.
100 */ 127 */
101 @MediumTest 128 @MediumTest
102 @Feature({"Payments"}) 129 @Feature({"Payments"})
103 public void testNumberOfBillingAddressSuggestions_AfterCancellingNewBillingA ddress() 130 public void testNumberOfBillingAddressSuggestions_AfterCancellingNewBillingA ddress()
104 throws InterruptedException, ExecutionException, TimeoutException { 131 throws InterruptedException, ExecutionException, TimeoutException {
105 // Add a payment method and add a new billing address. 132 // Add a payment method and add a new billing address.
106 triggerUIAndWait(mReadyToPay); 133 triggerUIAndWait(mReadyToPay);
107 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput); 134 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput);
108 clickInPaymentMethodAndWait(R.id.payments_add_option_button, mReadyToEdi t); 135 clickInPaymentMethodAndWait(R.id.payments_add_option_button, mReadyToEdi t);
109 136
110 // Select the "+ ADD ADDRESS" option for the billing address. 137 // Select the "+ ADD ADDRESS" option for the billing address.
111 setSpinnerSelectionsInCardEditorAndWait( 138 setSpinnerSelectionsInCardEditorAndWait(
112 new int[] {DECEMBER, NEXT_YEAR, ADD_BILLING_ADDRESS}, mReadyToEd it); 139 new int[] {DECEMBER, NEXT_YEAR, ADD_BILLING_ADDRESS}, mReadyToEd it);
113 140
114 // Cancel the creation of a new billing address. 141 // Cancel the creation of a new billing address.
115 clickInEditorAndWait(R.id.payments_edit_cancel_button, mReadyToEdit); 142 clickInEditorAndWait(R.id.payments_edit_cancel_button, mReadyToEdit);
116 143
117 // There should still only be 4 suggestions, the 3 saved addresses and t he option to add a 144 // There should still only be 8 suggestions, the 7 saved addresses and t he option to add a
118 // new address. 145 // new address.
119 assertEquals(4, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX)); 146 assertEquals(8, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX));
120 } 147 }
121 148
122 /** 149 /**
123 * Tests that for a card that already has a billing address, adding a new on e and cancelling 150 * Tests that for a card that already has a billing address, adding a new on e and cancelling
124 * maintains the previous selection. */ 151 * maintains the previous selection. */
125 @MediumTest 152 @MediumTest
126 @Feature({"Payments"}) 153 @Feature({"Payments"})
127 public void testAddBillingAddressOnCardAndCancel_MaintainsPreviousSelection( ) 154 public void testAddBillingAddressOnCardAndCancel_MaintainsPreviousSelection( )
128 throws InterruptedException, ExecutionException, TimeoutException { 155 throws InterruptedException, ExecutionException, TimeoutException {
129 triggerUIAndWait(mReadyToPay); 156 triggerUIAndWait(mReadyToPay);
130 // Edit the only card. 157 // Edit the only card.
131 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput); 158 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput);
132 clickInPaymentMethodAndWait(R.id.payments_open_editor_pencil_button, mRe adyToEdit); 159 clickInPaymentMethodAndWait(R.id.payments_open_editor_pencil_button, mRe adyToEdit);
133 160
134 // Jon Doe is selected as the billing address. 161 // Jon Doe is selected as the billing address.
135 assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_ INDEX) 162 assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_ INDEX)
136 .equals("Jon Doe, 340 Main St, Los Angeles, CA 90291" )); 163 .equals("Jon Doe, 340 Main St, Los Angeles, CA 90291"));
137 164
138 // Select the "+ ADD ADDRESS" option for the billing address. 165 // Select the "+ ADD ADDRESS" option for the billing address.
139 setSpinnerSelectionsInCardEditorAndWait( 166 setSpinnerSelectionsInCardEditorAndWait(
140 new int[] {DECEMBER, NEXT_YEAR, ADD_BILLING_ADDRESS}, mReadyToEd it); 167 new int[] {DECEMBER, NEXT_YEAR, ADD_BILLING_ADDRESS}, mReadyToEd it);
141 168
142 // Cancel the creation of a new billing address. 169 // Cancel the creation of a new billing address.
143 clickInEditorAndWait(R.id.payments_edit_cancel_button, mReadyToEdit); 170 clickInEditorAndWait(R.id.payments_edit_cancel_button, mReadyToEdit);
144 171
145 // Jon Doe is STILL selected as the billing address. 172 // Jon Doe is STILL selected as the billing address.
146 assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_ INDEX) 173 assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_ INDEX)
147 .equals("Jon Doe, 340 Main St, Los Angeles, CA 90291" )); 174 .equals("Jon Doe, 340 Main St, Los Angeles, CA 90291"));
148 } 175 }
149 176
150 /** 177 /**
151 * Tests that adding a billing address for a card that has none, and cancell ing then returns 178 * Tests that adding a billing address for a card that has none, and cancell ing then returns
152 * to the proper selection (Select...). 179 * to the proper selection (Select...).
153 */ 180 */
154 @MediumTest 181 @MediumTest
155 @Feature({"Payments"}) 182 @Feature({"Payments"})
156 public void testAddBillingAddressOnCardWithNoBillingAndCancel_MaintainsPrevi ousSelection() 183 public void testAddBillingAddressOnCardWithNoBillingAndCancel_MaintainsPrevi ousSelection()
157 throws InterruptedException, ExecutionException, TimeoutException { 184 throws InterruptedException, ExecutionException, TimeoutException {
158 triggerUIAndWait(mReadyToPay); 185 triggerUIAndWait(mReadyToPay);
159 // Edit the second card. 186 // Edit the second card.
160 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput); 187 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput);
161 clickOnPaymentMethodSuggestionOptionAndWait(1, mReadyForInput); 188 clickOnPaymentMethodSuggestionOptionAndWait(1, mReadyForInput);
162 189
163 // Now in Card Editor to add a billing address. "Select" is selected in the dropdown. 190 // Now in Card Editor to add a billing address. "Select" is selected in the dropdown.
164 assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_ INDEX) 191 assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_ INDEX)
165 .equals("Select")); 192 .equals("Select"));
166 193
167 // Select the "+ ADD ADDRESS" option for the billing address. 194 // Select the "+ ADD ADDRESS" option for the billing address.
168 setSpinnerSelectionsInCardEditorAndWait( 195 setSpinnerSelectionsInCardEditorAndWait(
169 new int[] {DECEMBER, NEXT_YEAR, ADD_BILLING_ADDRESS}, mReadyToEd it); 196 new int[] {DECEMBER, NEXT_YEAR, ADD_BILLING_ADDRESS}, mReadyToEd it);
170 197
171 // Cancel the creation of a new billing address. 198 // Cancel the creation of a new billing address.
172 clickInEditorAndWait(R.id.payments_edit_cancel_button, mReadyToEdit); 199 clickInEditorAndWait(R.id.payments_edit_cancel_button, mReadyToEdit);
173 200
174 // "Select" is STILL selected as the billing address. 201 // "Select" is STILL selected as the billing address.
175 assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_ INDEX) 202 assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_ INDEX)
176 .equals("Select")); 203 .equals("Select"));
177 } 204 }
178 205
179 /** 206 /**
180 * Verifies that the billing address suggestions are ordered by frecency. 207 * Verifies that the billing address suggestions are ordered by frecency.
181 */ 208 */
182 @MediumTest 209 @MediumTest
183 @Feature({"Payments"}) 210 @Feature({"Payments"})
184 public void testBillingAddressSortedByFrecency() 211 public void testBillingAddressSortedByFrecency()
185 throws InterruptedException, ExecutionException, TimeoutException { 212 throws InterruptedException, ExecutionException, TimeoutException {
186 // Add a payment method. 213 // Add a payment method.
187 triggerUIAndWait(mReadyToPay); 214 triggerUIAndWait(mReadyToPay);
188 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput); 215 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput);
189 clickInPaymentMethodAndWait(R.id.payments_add_option_button, mReadyToEdi t); 216 clickInPaymentMethodAndWait(R.id.payments_add_option_button, mReadyToEdi t);
190 217
191 // There should be 4 suggestions, the 3 saved addresses and the option t o add a new address. 218 // There should be 8 suggestions, the 7 saved addresses and the option t o add a new address.
192 assertEquals(4, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX)); 219 assertEquals(8, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX));
193 220
194 // The billing address suggestions should be ordered by frecency. 221 // The billing address suggestions should be ordered by frecency.
195 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX, 222 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
196 0).equals("Rob Doe, 340 Main St, Los Angeles, CA 90291")); 223 0).equals("Rob Doe, 340 Main St, Los Angeles, CA 90291"));
197 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX, 224 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
198 1).equals("Jon Doe, 340 Main St, Los Angeles, CA 90291")); 225 1).equals("Jon Doe, 340 Main St, Los Angeles, CA 90291"));
199 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX, 226 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
200 2).equals("Tom Doe, 340 Main St, Los Angeles, CA 90291")); 227 2).equals("Tom Doe, 340 Main St, Los Angeles, CA 90291"));
201 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX, 228 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
202 3).equals("Add address")); 229 7).equals("Add address"));
203 } 230 }
204 231
205 /** 232 /**
206 * Verifies that the billing address suggestions are ordered by frecency, ex cept for a newly 233 * Verifies that the billing address suggestions are ordered by frecency, ex cept for a newly
207 * created address which should be suggested first. 234 * created address which should be suggested first.
208 */ 235 */
209 @MediumTest 236 @MediumTest
210 @Feature({"Payments"}) 237 @Feature({"Payments"})
211 public void testBillingAddressSortedByFrecency_AddNewAddress() 238 public void testBillingAddressSortedByFrecency_AddNewAddress()
212 throws InterruptedException, ExecutionException, TimeoutException { 239 throws InterruptedException, ExecutionException, TimeoutException {
213 // Add a payment method. 240 // Add a payment method.
214 triggerUIAndWait(mReadyToPay); 241 triggerUIAndWait(mReadyToPay);
215 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput); 242 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput);
216 clickInPaymentMethodAndWait(R.id.payments_add_option_button, mReadyToEdi t); 243 clickInPaymentMethodAndWait(R.id.payments_add_option_button, mReadyToEdi t);
217 244
218 // Add a new billing address. 245 // Add a new billing address.
219 setSpinnerSelectionsInCardEditorAndWait( 246 setSpinnerSelectionsInCardEditorAndWait(
220 new int[] {DECEMBER, NEXT_YEAR, ADD_BILLING_ADDRESS}, mReadyToEd it); 247 new int[] {DECEMBER, NEXT_YEAR, ADD_BILLING_ADDRESS}, mReadyToEd it);
221 setTextInEditorAndWait(new String[] {"Seb Doe", "Google", "340 Main St", "Los Angeles", 248 setTextInEditorAndWait(new String[] {"Seb Doe", "Google", "340 Main St", "Los Angeles",
222 "CA", "90291", "999-999-9999"}, mEditorTextUpdate); 249 "CA", "90291", "999-999-9999"}, mEditorTextUpdate);
223 clickInEditorAndWait(R.id.payments_edit_done_button, mReadyToEdit); 250 clickInEditorAndWait(R.id.payments_edit_done_button, mReadyToEdit);
224 251
225 // There should be 5 suggestions, the 3 initial addresses, the newly add ed address and the 252 // There should be 9 suggestions, the 7 initial addresses, the newly add ed address and the
226 // option to add a new address. 253 // option to add a new address.
227 assertEquals(5, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX)); 254 assertEquals(9, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX));
228 255
229 // The fist suggestion should be the newly added address. 256 // The fist suggestion should be the newly added address.
230 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX, 257 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
231 0).equals("Seb Doe, 340 Main St, Los Angeles, CA 90291")); 258 0).equals("Seb Doe, 340 Main St, Los Angeles, CA 90291"));
232 259
233 // The rest of the billing address suggestions should be ordered by frec ency. 260 // The rest of the billing address suggestions should be ordered by frec ency.
234 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX, 261 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
235 1).equals("Rob Doe, 340 Main St, Los Angeles, CA 90291")); 262 1).equals("Rob Doe, 340 Main St, Los Angeles, CA 90291"));
236 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX, 263 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
237 2).equals("Jon Doe, 340 Main St, Los Angeles, CA 90291")); 264 2).equals("Jon Doe, 340 Main St, Los Angeles, CA 90291"));
238 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX, 265 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
239 3).equals("Tom Doe, 340 Main St, Los Angeles, CA 90291")); 266 3).equals("Tom Doe, 340 Main St, Los Angeles, CA 90291"));
240 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX, 267 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
241 4).equals("Add address")); 268 8).equals("Add address"));
242 } 269 }
243 270
244 /** 271 /**
245 * Verifies that a newly created shipping address is offered as the first bi lling address 272 * Verifies that a newly created shipping address is offered as the first bi lling address
246 * suggestion. 273 * suggestion.
247 */ 274 */
248 @MediumTest 275 @MediumTest
249 @Feature({"Payments"}) 276 @Feature({"Payments"})
250 public void testNewShippingAddressSuggestedFirst() 277 public void testNewShippingAddressSuggestedFirst()
251 throws InterruptedException, ExecutionException, TimeoutException { 278 throws InterruptedException, ExecutionException, TimeoutException {
252 triggerUIAndWait(mReadyToPay); 279 triggerUIAndWait(mReadyToPay);
253 280
254 // Add a shipping address. 281 // Add a shipping address.
255 clickInShippingSummaryAndWait(R.id.payments_section, mReadyForInput); 282 clickInShippingSummaryAndWait(R.id.payments_section, mReadyForInput);
256 clickInShippingAddressAndWait(R.id.payments_add_option_button, mReadyToE dit); 283 clickInShippingAddressAndWait(R.id.payments_add_option_button, mReadyToE dit);
257 setTextInEditorAndWait(new String[] {"Seb Doe", "Google", "340 Main St", "Los Angeles", 284 setTextInEditorAndWait(new String[] {"Seb Doe", "Google", "340 Main St", "Los Angeles",
258 "CA", "90291", "999-999-9999"}, mEditorTextUpdate); 285 "CA", "90291", "999-999-9999"}, mEditorTextUpdate);
259 clickInEditorAndWait(R.id.payments_edit_done_button, mReadyToPay); 286 clickInEditorAndWait(R.id.payments_edit_done_button, mReadyToPay);
260 287
261 // Navigate to the card editor UI. 288 // Navigate to the card editor UI.
262 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput); 289 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput);
263 clickInPaymentMethodAndWait(R.id.payments_add_option_button, mReadyToEdi t); 290 clickInPaymentMethodAndWait(R.id.payments_add_option_button, mReadyToEdi t);
264 291
265 // There should be 5 suggestions, the 3 initial addresses, the newly add ed address and the 292 // There should be 9 suggestions, the 7 initial addresses, the newly add ed address and the
266 // option to add a new address. 293 // option to add a new address.
267 assertEquals(5, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX)); 294 assertEquals(9, getSpinnerItemCountInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX));
268 295
269 // The new address should be suggested first. 296 // The new address should be suggested first.
270 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX, 297 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
271 0).equals("Seb Doe, 340 Main St, Los Angeles, CA 90291")); 298 0).equals("Seb Doe, 340 Main St, Los Angeles, CA 90291"));
272 } 299 }
300
301 @MediumTest
302 @Feature({"Payments"})
303 public void testSelectIncompleteBillingAddress_EditComplete()
304 throws InterruptedException, ExecutionException, TimeoutException {
305 triggerUIAndWait(mReadyToPay);
306 // Edit the second card.
307 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput);
308 clickOnPaymentMethodSuggestionOptionAndWait(1, mReadyForInput);
309
310 // Now "Select" is selected in the dropdown.
311 assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_ INDEX)
312 .equals("Select"));
313
314 // The incomplete addresses in the dropdown contain edit required messag es.
315 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
316 3).endsWith("Phone number required"));
317 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
318 4).endsWith("Recipient required"));
319 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
320 5).endsWith("More information required"));
321 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
322 6).endsWith("Invalid address"));
323
324 // Selects the fourth billing addresss that misses phone number brings u p the address
325 // editor.
326 setSpinnerSelectionsInCardEditorAndWait(new int[] {DECEMBER, NEXT_YEAR, 3}, mReadyToEdit);
327 setTextInEditorAndWait(new String[] {"Lisa Doe", "Google", "340 Main St" , "Los Angeles",
328 "CA", "90291", "999-999-9999"}, mEditorTextUpdate);
329 clickInEditorAndWait(R.id.payments_edit_done_button, mReadyToEdit);
330
331 // The newly completed address must be selected and put at the top of th e dropdown.
332 assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_ INDEX)
333 .equals("Lisa Doe, 340 Main St, Los Angeles, CA 90291"));
334 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
335 0).equals("Lisa Doe, 340 Main St, Los Angeles, CA 90291"));
336 }
337
338 @MediumTest
339 @Feature({"Payments"})
340 public void testSelectIncompleteBillingAddress_EditCancel()
341 throws InterruptedException, ExecutionException, TimeoutException {
342 triggerUIAndWait(mReadyToPay);
343 // Edit the only complete card.
344 clickInPaymentMethodAndWait(R.id.payments_section, mReadyForInput);
345 clickInPaymentMethodAndWait(R.id.payments_open_editor_pencil_button, mRe adyToEdit);
346
347 // Jon Doe is selected as the billing address.
348 assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_ INDEX)
349 .equals("Jon Doe, 340 Main St, Los Angeles, CA 90291"));
350
351 // The incomplete addresses in the dropdown contain edit required messag es.
352 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
353 3).endsWith("Phone number required"));
354 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
355 4).endsWith("Recipient required"));
356 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
357 5).endsWith("More information required"));
358 assertTrue(getSpinnerTextAtPositionInCardEditor(BILLING_ADDRESS_DROPDOWN _INDEX,
359 6).endsWith("Invalid address"));
360
361 // Selects the fifth billing addresss that misses recipient name brings up the address
362 // editor.
363 setSpinnerSelectionsInCardEditorAndWait(new int[] {DECEMBER, NEXT_YEAR, 4}, mReadyToEdit);
364 clickInEditorAndWait(R.id.payments_edit_cancel_button, mReadyToEdit);
365
366 // The previous selected address should be selected after canceling out from edit.
367 assertTrue(getSpinnerSelectionTextInCardEditor(BILLING_ADDRESS_DROPDOWN_ INDEX)
368 .equals("Jon Doe, 340 Main St, Los Angeles, CA 90291"));
369 }
273 } 370 }
OLDNEW
« 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