| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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.autofill; | 5 package org.chromium.chrome.browser.autofill; |
| 6 | 6 |
| 7 import android.support.test.filters.MediumTest; | 7 import android.support.test.filters.MediumTest; |
| 8 import android.text.TextUtils; | 8 import android.text.TextUtils; |
| 9 import android.view.View; | 9 import android.view.View; |
| 10 import android.view.ViewGroup; | 10 import android.view.ViewGroup; |
| 11 | 11 |
| 12 import org.junit.Assert; |
| 13 import org.junit.Before; |
| 14 import org.junit.Rule; |
| 15 import org.junit.Test; |
| 16 import org.junit.runner.RunWith; |
| 17 |
| 18 import org.chromium.base.test.util.CommandLineFlags; |
| 12 import org.chromium.base.test.util.Feature; | 19 import org.chromium.base.test.util.Feature; |
| 13 import org.chromium.base.test.util.RetryOnFailure; | 20 import org.chromium.base.test.util.RetryOnFailure; |
| 14 import org.chromium.base.test.util.UrlUtils; | 21 import org.chromium.base.test.util.UrlUtils; |
| 15 import org.chromium.chrome.browser.ChromeActivity; | 22 import org.chromium.chrome.browser.ChromeActivity; |
| 23 import org.chromium.chrome.browser.ChromeSwitches; |
| 16 import org.chromium.chrome.browser.autofill.PersonalDataManager.AutofillProfile; | 24 import org.chromium.chrome.browser.autofill.PersonalDataManager.AutofillProfile; |
| 17 import org.chromium.chrome.test.ChromeActivityTestCaseBase; | 25 import org.chromium.chrome.test.ChromeActivityTestRule; |
| 26 import org.chromium.chrome.test.ChromeJUnit4ClassRunner; |
| 18 import org.chromium.components.autofill.AutofillPopup; | 27 import org.chromium.components.autofill.AutofillPopup; |
| 19 import org.chromium.content.browser.ContentViewCore; | 28 import org.chromium.content.browser.ContentViewCore; |
| 20 import org.chromium.content.browser.input.ChromiumBaseInputConnection; | 29 import org.chromium.content.browser.input.ChromiumBaseInputConnection; |
| 21 import org.chromium.content.browser.test.util.Criteria; | 30 import org.chromium.content.browser.test.util.Criteria; |
| 22 import org.chromium.content.browser.test.util.CriteriaHelper; | 31 import org.chromium.content.browser.test.util.CriteriaHelper; |
| 23 import org.chromium.content.browser.test.util.DOMUtils; | 32 import org.chromium.content.browser.test.util.DOMUtils; |
| 24 import org.chromium.content.browser.test.util.TestInputMethodManagerWrapper; | 33 import org.chromium.content.browser.test.util.TestInputMethodManagerWrapper; |
| 25 import org.chromium.content.browser.test.util.TouchCommon; | 34 import org.chromium.content.browser.test.util.TouchCommon; |
| 26 import org.chromium.content_public.browser.WebContents; | 35 import org.chromium.content_public.browser.WebContents; |
| 27 import org.chromium.ui.R; | 36 import org.chromium.ui.R; |
| 28 | 37 |
| 29 import java.util.ArrayList; | 38 import java.util.ArrayList; |
| 30 import java.util.List; | 39 import java.util.List; |
| 31 import java.util.concurrent.Callable; | 40 import java.util.concurrent.Callable; |
| 32 import java.util.concurrent.ExecutionException; | 41 import java.util.concurrent.ExecutionException; |
| 33 import java.util.concurrent.TimeoutException; | 42 import java.util.concurrent.TimeoutException; |
| 34 | 43 |
| 35 /** | 44 /** |
| 36 * Integration tests for the AutofillPopup. | 45 * Integration tests for the AutofillPopup. |
| 37 */ | 46 */ |
| 47 @RunWith(ChromeJUnit4ClassRunner.class) |
| 38 @RetryOnFailure | 48 @RetryOnFailure |
| 39 public class AutofillPopupTest extends ChromeActivityTestCaseBase<ChromeActivity
> { | 49 @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, |
| 50 ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG}) |
| 51 public class AutofillPopupTest { |
| 52 @Rule |
| 53 public ChromeActivityTestRule<ChromeActivity> mActivityTestRule = |
| 54 new ChromeActivityTestRule<>(ChromeActivity.class); |
| 40 | 55 |
| 41 private static final String FIRST_NAME = "John"; | 56 private static final String FIRST_NAME = "John"; |
| 42 private static final String LAST_NAME = "Smith"; | 57 private static final String LAST_NAME = "Smith"; |
| 43 private static final String COMPANY_NAME = "Acme Inc."; | 58 private static final String COMPANY_NAME = "Acme Inc."; |
| 44 private static final String ADDRESS_LINE1 = "1 Main"; | 59 private static final String ADDRESS_LINE1 = "1 Main"; |
| 45 private static final String ADDRESS_LINE2 = "Apt A"; | 60 private static final String ADDRESS_LINE2 = "Apt A"; |
| 46 private static final String STREET_ADDRESS_TEXTAREA = ADDRESS_LINE1 + "\n" +
ADDRESS_LINE2; | 61 private static final String STREET_ADDRESS_TEXTAREA = ADDRESS_LINE1 + "\n" +
ADDRESS_LINE2; |
| 47 private static final String CITY = "San Francisco"; | 62 private static final String CITY = "San Francisco"; |
| 48 private static final String DEPENDENT_LOCALITY = ""; | 63 private static final String DEPENDENT_LOCALITY = ""; |
| 49 private static final String STATE = "CA"; | 64 private static final String STATE = "CA"; |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 + "<select id=\"co\" autocomplete=\"country\"><br>" | 130 + "<select id=\"co\" autocomplete=\"country\"><br>" |
| 116 + "<option value=\"GB\">Great Britain</option>" | 131 + "<option value=\"GB\">Great Britain</option>" |
| 117 + "<option value=\"BR\">Brazil</option>" | 132 + "<option value=\"BR\">Brazil</option>" |
| 118 + "</select>" | 133 + "</select>" |
| 119 + "<input type=\"submit\" />" | 134 + "<input type=\"submit\" />" |
| 120 + "</form></body></html>"); | 135 + "</form></body></html>"); |
| 121 | 136 |
| 122 private AutofillTestHelper mHelper; | 137 private AutofillTestHelper mHelper; |
| 123 private List<AutofillLogger.LogEntry> mAutofillLoggedEntries; | 138 private List<AutofillLogger.LogEntry> mAutofillLoggedEntries; |
| 124 | 139 |
| 125 public AutofillPopupTest() { | 140 @Before |
| 126 super(ChromeActivity.class); | |
| 127 } | |
| 128 | |
| 129 @Override | |
| 130 public void startMainActivity() throws InterruptedException { | |
| 131 // Don't launch activity automatically. | |
| 132 } | |
| 133 | |
| 134 @Override | |
| 135 public void setUp() throws Exception { | 141 public void setUp() throws Exception { |
| 136 super.setUp(); | |
| 137 mAutofillLoggedEntries = new ArrayList<AutofillLogger.LogEntry>(); | 142 mAutofillLoggedEntries = new ArrayList<AutofillLogger.LogEntry>(); |
| 138 AutofillLogger.setLoggerForTesting( | 143 AutofillLogger.setLoggerForTesting( |
| 139 new AutofillLogger.Logger() { | 144 new AutofillLogger.Logger() { |
| 140 @Override | 145 @Override |
| 141 public void didFillField(AutofillLogger.LogEntry logEntry) { | 146 public void didFillField(AutofillLogger.LogEntry logEntry) { |
| 142 mAutofillLoggedEntries.add(logEntry); | 147 mAutofillLoggedEntries.add(logEntry); |
| 143 } | 148 } |
| 144 } | 149 } |
| 145 ); | 150 ); |
| 146 } | 151 } |
| 147 | 152 |
| 148 private void loadAndFillForm( | 153 private void loadAndFillForm( |
| 149 final String formDataUrl, final String inputText) | 154 final String formDataUrl, final String inputText) |
| 150 throws InterruptedException, ExecutionException, TimeoutException { | 155 throws InterruptedException, ExecutionException, TimeoutException { |
| 151 startMainActivityWithURL(formDataUrl); | 156 mActivityTestRule.startMainActivityWithURL(formDataUrl); |
| 152 mHelper = new AutofillTestHelper(); | 157 mHelper = new AutofillTestHelper(); |
| 153 | 158 |
| 154 // The TestInputMethodManagerWrapper intercepts showSoftInput so that a
keyboard is never | 159 // The TestInputMethodManagerWrapper intercepts showSoftInput so that a
keyboard is never |
| 155 // brought up. | 160 // brought up. |
| 156 final ContentViewCore viewCore = getActivity().getCurrentContentViewCore
(); | 161 final ContentViewCore viewCore = |
| 162 mActivityTestRule.getActivity().getCurrentContentViewCore(); |
| 157 final WebContents webContents = viewCore.getWebContents(); | 163 final WebContents webContents = viewCore.getWebContents(); |
| 158 final ViewGroup view = viewCore.getContainerView(); | 164 final ViewGroup view = viewCore.getContainerView(); |
| 159 final TestInputMethodManagerWrapper immw = | 165 final TestInputMethodManagerWrapper immw = |
| 160 new TestInputMethodManagerWrapper(viewCore); | 166 new TestInputMethodManagerWrapper(viewCore); |
| 161 viewCore.getImeAdapterForTest().setInputMethodManagerWrapperForTest(immw
); | 167 viewCore.getImeAdapterForTest().setInputMethodManagerWrapperForTest(immw
); |
| 162 | 168 |
| 163 // Add an Autofill profile. | 169 // Add an Autofill profile. |
| 164 AutofillProfile profile = new AutofillProfile( | 170 AutofillProfile profile = new AutofillProfile( |
| 165 "" /* guid */, ORIGIN, FIRST_NAME + " " + LAST_NAME, COMPANY_NAM
E, | 171 "" /* guid */, ORIGIN, FIRST_NAME + " " + LAST_NAME, COMPANY_NAM
E, |
| 166 STREET_ADDRESS_TEXTAREA, | 172 STREET_ADDRESS_TEXTAREA, |
| 167 STATE, CITY, DEPENDENT_LOCALITY, | 173 STATE, CITY, DEPENDENT_LOCALITY, |
| 168 ZIP_CODE, SORTING_CODE, COUNTRY, PHONE_NUMBER, EMAIL, | 174 ZIP_CODE, SORTING_CODE, COUNTRY, PHONE_NUMBER, EMAIL, |
| 169 LANGUAGE_CODE); | 175 LANGUAGE_CODE); |
| 170 mHelper.setProfile(profile); | 176 mHelper.setProfile(profile); |
| 171 assertEquals(1, mHelper.getNumberOfProfilesToSuggest()); | 177 Assert.assertEquals(1, mHelper.getNumberOfProfilesToSuggest()); |
| 172 | 178 |
| 173 // Click the input field for the first name. | 179 // Click the input field for the first name. |
| 174 DOMUtils.waitForNonZeroNodeBounds(webContents, "fn"); | 180 DOMUtils.waitForNonZeroNodeBounds(webContents, "fn"); |
| 175 DOMUtils.clickNode(viewCore, "fn"); | 181 DOMUtils.clickNode(viewCore, "fn"); |
| 176 | 182 |
| 177 waitForKeyboardShowRequest(immw, 1); | 183 waitForKeyboardShowRequest(immw, 1); |
| 178 | 184 |
| 179 final ChromiumBaseInputConnection inputConnection = | 185 final ChromiumBaseInputConnection inputConnection = |
| 180 viewCore.getImeAdapterForTest().getInputConnectionForTest(); | 186 viewCore.getImeAdapterForTest().getInputConnectionForTest(); |
| 181 inputConnection.getHandler().post(new Runnable() { | 187 inputConnection.getHandler().post(new Runnable() { |
| 182 @Override | 188 @Override |
| 183 public void run() { | 189 public void run() { |
| 184 inputConnection.setComposingText(inputText, 1); | 190 inputConnection.setComposingText(inputText, 1); |
| 185 } | 191 } |
| 186 }); | 192 }); |
| 187 | 193 |
| 188 waitForAnchorViewAdd(view); | 194 waitForAnchorViewAdd(view); |
| 189 View anchorView = view.findViewById(R.id.dropdown_popup_window); | 195 View anchorView = view.findViewById(R.id.dropdown_popup_window); |
| 190 | 196 |
| 191 assertTrue(anchorView.getTag() instanceof AutofillPopup); | 197 Assert.assertTrue(anchorView.getTag() instanceof AutofillPopup); |
| 192 final AutofillPopup popup = (AutofillPopup) anchorView.getTag(); | 198 final AutofillPopup popup = (AutofillPopup) anchorView.getTag(); |
| 193 | 199 |
| 194 waitForAutofillPopopShow(popup); | 200 waitForAutofillPopopShow(popup); |
| 195 | 201 |
| 196 TouchCommon.singleClickView(popup.getListView(), 10, 10); | 202 TouchCommon.singleClickView(popup.getListView(), 10, 10); |
| 197 | 203 |
| 198 waitForInputFieldFill(webContents); | 204 waitForInputFieldFill(webContents); |
| 199 } | 205 } |
| 200 | 206 |
| 201 /** | 207 /** |
| 202 * Tests that bringing up an Autofill and clicking on the first entry fills
out the expected | 208 * Tests that bringing up an Autofill and clicking on the first entry fills
out the expected |
| 203 * Autofill information. | 209 * Autofill information. |
| 204 */ | 210 */ |
| 211 @Test |
| 205 @MediumTest | 212 @MediumTest |
| 206 @Feature({"autofill"}) | 213 @Feature({"autofill"}) |
| 207 public void testClickAutofillPopupSuggestion() | 214 public void testClickAutofillPopupSuggestion() |
| 208 throws InterruptedException, ExecutionException, TimeoutException { | 215 throws InterruptedException, ExecutionException, TimeoutException { |
| 209 loadAndFillForm(BASIC_PAGE_DATA, "J"); | 216 loadAndFillForm(BASIC_PAGE_DATA, "J"); |
| 210 final ContentViewCore viewCore = getActivity().getCurrentContentViewCore
(); | 217 final ContentViewCore viewCore = |
| 218 mActivityTestRule.getActivity().getCurrentContentViewCore(); |
| 211 final WebContents webContents = viewCore.getWebContents(); | 219 final WebContents webContents = viewCore.getWebContents(); |
| 212 | 220 |
| 213 assertEquals("First name did not match", | 221 Assert.assertEquals( |
| 214 FIRST_NAME, DOMUtils.getNodeValue(webContents, "fn")); | 222 "First name did not match", FIRST_NAME, DOMUtils.getNodeValue(we
bContents, "fn")); |
| 215 assertEquals("Last name did not match", | 223 Assert.assertEquals( |
| 216 LAST_NAME, DOMUtils.getNodeValue(webContents, "ln")); | 224 "Last name did not match", LAST_NAME, DOMUtils.getNodeValue(webC
ontents, "ln")); |
| 217 assertEquals("Street address (textarea) did not match", | 225 Assert.assertEquals("Street address (textarea) did not match", STREET_AD
DRESS_TEXTAREA, |
| 218 STREET_ADDRESS_TEXTAREA, DOMUtils.getNodeValue(webContents, "sa"
)); | 226 DOMUtils.getNodeValue(webContents, "sa")); |
| 219 assertEquals("Address line 1 did not match", | 227 Assert.assertEquals("Address line 1 did not match", ADDRESS_LINE1, |
| 220 ADDRESS_LINE1, DOMUtils.getNodeValue(webContents, "a1")); | 228 DOMUtils.getNodeValue(webContents, "a1")); |
| 221 assertEquals("Address line 2 did not match", | 229 Assert.assertEquals("Address line 2 did not match", ADDRESS_LINE2, |
| 222 ADDRESS_LINE2, DOMUtils.getNodeValue(webContents, "a2")); | 230 DOMUtils.getNodeValue(webContents, "a2")); |
| 223 assertEquals("City did not match", | 231 Assert.assertEquals("City did not match", CITY, DOMUtils.getNodeValue(we
bContents, "ct")); |
| 224 CITY, DOMUtils.getNodeValue(webContents, "ct")); | 232 Assert.assertEquals( |
| 225 assertEquals("Zip code did not match", | 233 "Zip code did not match", ZIP_CODE, DOMUtils.getNodeValue(webCon
tents, "zc")); |
| 226 ZIP_CODE, DOMUtils.getNodeValue(webContents, "zc")); | 234 Assert.assertEquals( |
| 227 assertEquals("Country did not match", | 235 "Country did not match", COUNTRY, DOMUtils.getNodeValue(webConte
nts, "co")); |
| 228 COUNTRY, DOMUtils.getNodeValue(webContents, "co")); | 236 Assert.assertEquals("Email did not match", EMAIL, DOMUtils.getNodeValue(
webContents, "em")); |
| 229 assertEquals("Email did not match", | 237 Assert.assertEquals("Phone number did not match", PHONE_NUMBER, |
| 230 EMAIL, DOMUtils.getNodeValue(webContents, "em")); | 238 DOMUtils.getNodeValue(webContents, "ph")); |
| 231 assertEquals("Phone number did not match", | |
| 232 PHONE_NUMBER, DOMUtils.getNodeValue(webContents, "ph")); | |
| 233 | 239 |
| 234 final String profileFullName = FIRST_NAME + " " + LAST_NAME; | 240 final String profileFullName = FIRST_NAME + " " + LAST_NAME; |
| 235 final int loggedEntries = 10; | 241 final int loggedEntries = 10; |
| 236 assertEquals("Mismatched number of logged entries", | 242 Assert.assertEquals("Mismatched number of logged entries", loggedEntries
, |
| 237 loggedEntries, mAutofillLoggedEntries.size()); | 243 mAutofillLoggedEntries.size()); |
| 238 assertLogged(FIRST_NAME, profileFullName); | 244 assertLogged(FIRST_NAME, profileFullName); |
| 239 assertLogged(LAST_NAME, profileFullName); | 245 assertLogged(LAST_NAME, profileFullName); |
| 240 assertLogged(STREET_ADDRESS_TEXTAREA, profileFullName); | 246 assertLogged(STREET_ADDRESS_TEXTAREA, profileFullName); |
| 241 assertLogged(ADDRESS_LINE1, profileFullName); | 247 assertLogged(ADDRESS_LINE1, profileFullName); |
| 242 assertLogged(ADDRESS_LINE2, profileFullName); | 248 assertLogged(ADDRESS_LINE2, profileFullName); |
| 243 assertLogged(CITY, profileFullName); | 249 assertLogged(CITY, profileFullName); |
| 244 assertLogged(ZIP_CODE, profileFullName); | 250 assertLogged(ZIP_CODE, profileFullName); |
| 245 assertLogged(COUNTRY, profileFullName); | 251 assertLogged(COUNTRY, profileFullName); |
| 246 assertLogged(EMAIL, profileFullName); | 252 assertLogged(EMAIL, profileFullName); |
| 247 assertLogged(PHONE_NUMBER, profileFullName); | 253 assertLogged(PHONE_NUMBER, profileFullName); |
| 248 } | 254 } |
| 249 | 255 |
| 250 /** | 256 /** |
| 251 * Tests that bringing up an Autofill and clicking on the partially filled f
irst | 257 * Tests that bringing up an Autofill and clicking on the partially filled f
irst |
| 252 * element will still fill the entire form (including the initiating element
itself). | 258 * element will still fill the entire form (including the initiating element
itself). |
| 253 */ | 259 */ |
| 260 @Test |
| 254 @MediumTest | 261 @MediumTest |
| 255 @Feature({"autofill"}) | 262 @Feature({"autofill"}) |
| 256 public void testLoggingInitiatedElementFilled() | 263 public void testLoggingInitiatedElementFilled() |
| 257 throws InterruptedException, ExecutionException, TimeoutException { | 264 throws InterruptedException, ExecutionException, TimeoutException { |
| 258 loadAndFillForm(INITIATING_ELEMENT_FILLED, "o"); | 265 loadAndFillForm(INITIATING_ELEMENT_FILLED, "o"); |
| 259 final String profileFullName = FIRST_NAME + " " + LAST_NAME; | 266 final String profileFullName = FIRST_NAME + " " + LAST_NAME; |
| 260 final int loggedEntries = 4; | 267 final int loggedEntries = 4; |
| 261 assertEquals("Mismatched number of logged entries", | 268 Assert.assertEquals("Mismatched number of logged entries", loggedEntries
, |
| 262 loggedEntries, mAutofillLoggedEntries.size()); | 269 mAutofillLoggedEntries.size()); |
| 263 assertLogged(FIRST_NAME, profileFullName); | 270 assertLogged(FIRST_NAME, profileFullName); |
| 264 assertLogged(LAST_NAME, profileFullName); | 271 assertLogged(LAST_NAME, profileFullName); |
| 265 assertLogged(EMAIL, profileFullName); | 272 assertLogged(EMAIL, profileFullName); |
| 266 assertLogged(COUNTRY, profileFullName); | 273 assertLogged(COUNTRY, profileFullName); |
| 267 } | 274 } |
| 268 | 275 |
| 269 /** | 276 /** |
| 270 * Tests that bringing up an Autofill and clicking on the empty first elemen
t | 277 * Tests that bringing up an Autofill and clicking on the empty first elemen
t |
| 271 * will fill the all other elements except the previously filled email. | 278 * will fill the all other elements except the previously filled email. |
| 272 */ | 279 */ |
| 280 @Test |
| 273 @MediumTest | 281 @MediumTest |
| 274 @Feature({"autofill"}) | 282 @Feature({"autofill"}) |
| 275 public void testLoggingAnotherElementFilled() | 283 public void testLoggingAnotherElementFilled() |
| 276 throws InterruptedException, ExecutionException, TimeoutException { | 284 throws InterruptedException, ExecutionException, TimeoutException { |
| 277 loadAndFillForm(ANOTHER_ELEMENT_FILLED, "J"); | 285 loadAndFillForm(ANOTHER_ELEMENT_FILLED, "J"); |
| 278 final String profileFullName = FIRST_NAME + " " + LAST_NAME; | 286 final String profileFullName = FIRST_NAME + " " + LAST_NAME; |
| 279 final int loggedEntries = 3; | 287 final int loggedEntries = 3; |
| 280 assertEquals("Mismatched number of logged entries", | 288 Assert.assertEquals("Mismatched number of logged entries", loggedEntries
, |
| 281 loggedEntries, mAutofillLoggedEntries.size()); | 289 mAutofillLoggedEntries.size()); |
| 282 assertLogged(FIRST_NAME, profileFullName); | 290 assertLogged(FIRST_NAME, profileFullName); |
| 283 assertLogged(LAST_NAME, profileFullName); | 291 assertLogged(LAST_NAME, profileFullName); |
| 284 assertLogged(COUNTRY, profileFullName); | 292 assertLogged(COUNTRY, profileFullName); |
| 285 // Email will not be logged since it already had some data. | 293 // Email will not be logged since it already had some data. |
| 286 } | 294 } |
| 287 | 295 |
| 288 /** | 296 /** |
| 289 * Tests that selecting a value not present in <option> will not be filled. | 297 * Tests that selecting a value not present in <option> will not be filled. |
| 290 */ | 298 */ |
| 299 @Test |
| 291 @MediumTest | 300 @MediumTest |
| 292 @Feature({"autofill"}) | 301 @Feature({"autofill"}) |
| 293 public void testNotLoggingInvalidOption() | 302 public void testNotLoggingInvalidOption() |
| 294 throws InterruptedException, ExecutionException, TimeoutException { | 303 throws InterruptedException, ExecutionException, TimeoutException { |
| 295 loadAndFillForm(INVALID_OPTION, "o"); | 304 loadAndFillForm(INVALID_OPTION, "o"); |
| 296 final String profileFullName = FIRST_NAME + " " + LAST_NAME; | 305 final String profileFullName = FIRST_NAME + " " + LAST_NAME; |
| 297 final int loggedEntries = 3; | 306 final int loggedEntries = 3; |
| 298 assertEquals("Mismatched number of logged entries", | 307 Assert.assertEquals("Mismatched number of logged entries", loggedEntries
, |
| 299 loggedEntries, mAutofillLoggedEntries.size()); | 308 mAutofillLoggedEntries.size()); |
| 300 assertLogged(FIRST_NAME, profileFullName); | 309 assertLogged(FIRST_NAME, profileFullName); |
| 301 assertLogged(LAST_NAME, profileFullName); | 310 assertLogged(LAST_NAME, profileFullName); |
| 302 assertLogged(EMAIL, profileFullName); | 311 assertLogged(EMAIL, profileFullName); |
| 303 // Country will not be logged since "US" is not a valid <option>. | 312 // Country will not be logged since "US" is not a valid <option>. |
| 304 } | 313 } |
| 305 | 314 |
| 306 // Wait and assert helper methods ------------------------------------------
------------------- | 315 // Wait and assert helper methods ------------------------------------------
------------------- |
| 307 | 316 |
| 308 private void waitForKeyboardShowRequest(final TestInputMethodManagerWrapper
immw, | 317 private void waitForKeyboardShowRequest(final TestInputMethodManagerWrapper
immw, |
| 309 final int count) { | 318 final int count) { |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 355 }); | 364 }); |
| 356 } | 365 } |
| 357 | 366 |
| 358 private void assertLogged(String autofilledValue, String profileFullName) { | 367 private void assertLogged(String autofilledValue, String profileFullName) { |
| 359 for (AutofillLogger.LogEntry entry : mAutofillLoggedEntries) { | 368 for (AutofillLogger.LogEntry entry : mAutofillLoggedEntries) { |
| 360 if (entry.getAutofilledValue().equals(autofilledValue) | 369 if (entry.getAutofilledValue().equals(autofilledValue) |
| 361 && entry.getProfileFullName().equals(profileFullName)) { | 370 && entry.getProfileFullName().equals(profileFullName)) { |
| 362 return; | 371 return; |
| 363 } | 372 } |
| 364 } | 373 } |
| 365 fail("Logged entry not found [" + autofilledValue + "," + profileFullNam
e + "]"); | 374 Assert.fail("Logged entry not found [" + autofilledValue + "," + profile
FullName + "]"); |
| 366 } | 375 } |
| 367 } | 376 } |
| OLD | NEW |