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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillDialogControllerTest.java

Issue 1931043002: Remove requestAutocomplete (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 7 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/autofill/AutofillDialogControllerTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillDialogControllerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillDialogControllerTest.java
deleted file mode 100644
index d543bf81ed3aa0c13d87f61d2a7753b02ac4927c..0000000000000000000000000000000000000000
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillDialogControllerTest.java
+++ /dev/null
@@ -1,734 +0,0 @@
-// Copyright 2013 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.autofill;
-
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.TextUtils;
-
-import org.chromium.base.test.util.CommandLineFlags;
-import org.chromium.base.test.util.Feature;
-import org.chromium.base.test.util.UrlUtils;
-import org.chromium.chrome.browser.ChromeActivity;
-import org.chromium.chrome.test.ChromeActivityTestCaseBase;
-import org.chromium.content.browser.ContentViewCore;
-import org.chromium.content.browser.test.util.Criteria;
-import org.chromium.content.browser.test.util.CriteriaHelper;
-import org.chromium.content.browser.test.util.DOMUtils;
-import org.chromium.content_public.browser.WebContents;
-
-import java.util.concurrent.TimeoutException;
-
-/**
- * Integration tests for the AutofillPopup.
- */
-@CommandLineFlags.Add("reduce-security-for-testing")
-public class AutofillDialogControllerTest extends ChromeActivityTestCaseBase<ChromeActivity> {
- private static final long DIALOG_CALLBACK_DELAY_MILLISECONDS = 50;
-
- private static final String TEST_NAME = "Joe Doe";
- private static final String TEST_PHONE = "(415)413-0703";
- private static final String TEST_PHONE_UNFORMATTED = "4154130703";
- private static final String TEST_EMAIL = "email@server.com";
-
- private static final String TEST_CC_NUMBER = "4111111111111111";
- private static final String TEST_CC_CSC = "123";
- private static final int TEST_CC_EXP_MONTH = 11;
- private static final int TEST_CC_EXP_YEAR = 2015;
-
- private static final String TEST_BILLING1 = "123 Main street";
- private static final String TEST_BILLING2 = "apt 456";
- private static final String TEST_BILLING3 = "leave at the office";
- private static final String TEST_BILLING_STREET =
- TEST_BILLING1 + "\n" + TEST_BILLING2 + "\n" + TEST_BILLING3;
- private static final String TEST_BILLING_CITY = "Schenectady";
- private static final String TEST_BILLING_DL = ""; // dependent locality
- private static final String TEST_BILLING_STATE = "NY";
- private static final String TEST_BILLING_ZIP = "12345";
- private static final String TEST_BILLING_SORTING_CODE = ""; // sorting code
- private static final String TEST_BILLING_COUNTRY = "US";
- private static final String TEST_BILLING_LANGUAGE = ""; // language
-
- private static final String TEST_SHIPPING_NAME = "Mister Receiver";
- private static final String TEST_SHIPPING_PHONE = "+46 8 713 99 99";
- private static final String TEST_SHIPPING_PHONE_UNFORMATTED = "+4687139999";
- private static final String TEST_SHIPPING1 = "19 Farstaplan";
- private static final String TEST_SHIPPING2 = "Third floor";
- private static final String TEST_SHIPPING3 = "please call first";
- private static final String TEST_SHIPPING_STREET =
- TEST_SHIPPING1 + "\n" + TEST_SHIPPING2 + "\n" + TEST_SHIPPING3;
- private static final String TEST_SHIPPING_CITY = "Farsta";
- private static final String TEST_SHIPPING_DL = ""; // dependent locality
- private static final String TEST_SHIPPING_STATE = "Stockholm";
- private static final String TEST_SHIPPING_ZIP = "12346";
- private static final String TEST_SHIPPING_SORTING_CODE = ""; // sorting code
- private static final String TEST_SHIPPING_COUNTRY = "SE";
- private static final String TEST_SHIPPING_LANGUAGE = ""; // language
-
- private static final String HTML_PRELUDE = "<html>"
- + "<head>"
- + " <meta name=\"viewport\""
- + " content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0\" />"
- + "</head>"
- + "<body>"
- + "<form id=\"id-form\">"
- + " <button id=\"id-button\">DO INTERACTIVE AUTOCOMPLETE</button>";
-
- private static final String HTML_POSTLUDE = "</form>"
- + "<div id=\"was-autocompleted\">no</div>"
- + ":<div id=\"autocomplete-failure-reason\"></div>"
- + "<script>"
- + "var form = document.forms[0];"
- + "form.onsubmit = function(e) {"
- + " e.preventDefault();"
- + " form.requestAutocomplete();"
- + "};"
- + "form.onautocomplete = function() {"
- + " document.getElementById('was-autocompleted').textContent = 'succeeded';"
- + "};"
- + "form.onautocompleteerror = function(e) {"
- + " document.getElementById('was-autocompleted').textContent = 'failed';"
- + " document.getElementById('autocomplete-failure-reason').textContent = e.reason;"
- + "};"
- + "</script></body></html>";
-
- private static String generatePage(
- boolean requestFullBilling, boolean requestShipping, boolean requestPhoneNumbers) {
- StringBuilder sb = new StringBuilder();
- sb.append(HTML_PRELUDE);
- sb.append("<fieldset>"
- + "<input id=\"id-billing-name\" autocomplete=\"billing name\" value=\"W\">"
- + "<input id=\"id-cc-name\" autocomplete=\"cc-name\" value=\"W\">"
- + "<input id=\"id-email\" autocomplete=\"email\" type=\"email\" value=\"W@W.W\">"
- + "<input id=\"id-cc-number\" autocomplete=\"cc-number\" value=\"W\">"
- + "<input id=\"id-cc-exp\" "
- + " autocomplete=\"cc-exp\" type=\"month\" value=\"1111-11\">"
- + "<select id=\"id-cc-exp-month\" autocomplete=\"cc-exp-month\">"
- + " <option value=\"1\" selected>1</option>"
- + " <option value=\"2\">2</option>"
- + " <option value=\"3\">3</option>"
- + " <option value=\"4\">4</option>"
- + " <option value=\"5\">5</option>"
- + " <option value=\"6\">6</option>"
- + " <option value=\"7\">7</option>"
- + " <option value=\"8\">8</option>"
- + " <option value=\"9\">9</option>"
- + " <option value=\"10\">10</option>"
- + " <option value=\"11\">11</option>"
- + " <option value=\"12\">12</option>"
- + "</select>"
- + "<select id=\"id-cc-exp-year\" autocomplete=\"cc-exp-year\">"
- + " <option value=\"2011\" selected>2011</option>"
- + " <option value=\"2012\">2012</option>"
- + " <option value=\"2013\">2013</option>"
- + " <option value=\"2014\">2014</option>"
- + " <option value=\"2015\">2015</option>"
- + "</select>"
- + "<input id=\"id-cc-csc\" autocomplete=\"cc-csc\" value=\"W\">"
- + "<input id=\"id-cc-zip\" autocomplete=\"billing postal-code\" value=\"W\">");
- if (requestFullBilling) {
- sb.append("<input id=\"id-cc-1\" autocomplete=\"billing address-line1\" value=\"W\">"
- + "<input id=\"id-cc-2\" autocomplete=\"billing address-line2\" value=\"W\">"
- + "<textarea id=\"id-cc-str\""
- + " autocomplete=\"billing street-address\">W</textarea>"
- + "<input id=\"id-cc-city\" autocomplete=\"billing locality\" value=\"W\">"
- + "<input id=\"id-cc-state\" autocomplete=\"billing region\" value=\"W\">"
- + "<select id=\"id-cc-country\" autocomplete=\"billing country\">"
- + " <option value=\"NL\" selected>Netherlands</option>"
- + " <option value=\"US\">United States</option>"
- + " <option value=\"SE\">Sweden</option>"
- + " <option value=\"RU\">Russia</option>"
- + "</select>");
- }
- sb.append("</fieldset>");
- if (requestShipping) {
- sb.append("<fieldset>"
- + "<input id=\"id-name\" autocomplete=\"name\" value=\"W\">"
- + "<input id=\"id-h-name\" autocomplete=\"shipping name\" value=\"W\">"
- + "<input id=\"id-h-1\" autocomplete=\"shipping address-line1\" value=\"W\">"
- + "<input id=\"id-h-2\" autocomplete=\"shipping address-line2\" value=\"W\">"
- + "<textarea id=\"id-h-str\""
- + " autocomplete=\"shipping street-address\">W</textarea>"
- + "<input id=\"id-h-city\" autocomplete=\"shipping locality\" value=\"W\">"
- + "<input id=\"id-h-state\" autocomplete=\"shipping region\" value=\"W\">"
- + "<input id=\"id-h-zip\" autocomplete=\"shipping postal-code\" value=\"W\">"
- + "<select id=\"id-h-country\" autocomplete=\"shipping country\">"
- + " <option value=\"NL\" selected>Netherlands</option>"
- + " <option value=\"US\">United States</option>"
- + " <option value=\"SE\">Sweden</option>"
- + " <option value=\"RU\">Russia</option>"
- + "</select>"
- + "</fieldset>");
- }
- if (requestPhoneNumbers) {
- sb.append("<fieldset>"
- + "<input id=\"id-cc-tel\" autocomplete=\"billing tel\" value=\"W\">");
- if (requestShipping) {
- sb.append("<input id=\"id-h-tel\" autocomplete=\"shipping tel\" value=\"W\">"
- + "<input id=\"id-tel\" autocomplete=\"tel\" value=\"W\">");
- }
- sb.append("</fieldset>");
- }
- sb.append(HTML_POSTLUDE);
- return UrlUtils.encodeHtmlDataUri(sb.toString());
- }
-
- public AutofillDialogControllerTest() {
- super(ChromeActivity.class);
- }
-
- @Override
- public void startMainActivity() throws InterruptedException {
- // Don't launch activity automatically.
- }
-
- @MediumTest
- @Feature({"autofill"})
- public void testFieldsAreFilledMinimal() throws InterruptedException, TimeoutException {
- final boolean requestFullBilling = false;
- final boolean requestShipping = false;
- final boolean requestPhoneNumbers = false;
- verifyFieldsAreFilled(requestFullBilling, requestShipping, requestPhoneNumbers);
- }
-
- @MediumTest
- @Feature({"autofill"})
- public void testFieldsAreFilledFullBilling() throws InterruptedException, TimeoutException {
- final boolean requestFullBilling = true;
- final boolean requestShipping = false;
- final boolean requestPhoneNumbers = false;
- verifyFieldsAreFilled(requestFullBilling, requestShipping, requestPhoneNumbers);
- }
-
- @MediumTest
- @Feature({"autofill"})
- public void testFieldsAreFilledShipping() throws InterruptedException, TimeoutException {
- final boolean requestFullBilling = true;
- final boolean requestShipping = true;
- final boolean requestPhoneNumbers = false;
- verifyFieldsAreFilled(requestFullBilling, requestShipping, requestPhoneNumbers);
- }
-
- @MediumTest
- @Feature({"autofill"})
- public void testFieldsAreFilledBillingPhone() throws InterruptedException, TimeoutException {
- final boolean requestFullBilling = true;
- final boolean requestShipping = false;
- final boolean requestPhoneNumbers = true;
- verifyFieldsAreFilled(requestFullBilling, requestShipping, requestPhoneNumbers);
- }
-
- @MediumTest
- @Feature({"autofill"})
- public void testFieldsAreFilledEverything() throws InterruptedException, TimeoutException {
- final boolean requestFullBilling = true;
- final boolean requestShipping = true;
- final boolean requestPhoneNumbers = true;
- verifyFieldsAreFilled(requestFullBilling, requestShipping, requestPhoneNumbers);
- }
-
- // It is currently unspecified whether autocomplete="name" gives a SHIPPING or a BILLING name.
- // I'm assuming here that this is a shipping name.
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeName() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<input id=\"id\" autocomplete=\"name\">",
- TEST_SHIPPING_NAME, "id", false, true, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeBillingName() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<input id=\"id\" autocomplete=\"billing name\">",
- TEST_NAME, "id", false, false, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeShippingName() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<input id=\"id\" autocomplete=\"shipping name\">",
- TEST_SHIPPING_NAME, "id", false, true, false);
- }
-
- // It is currently unspecified whether autocomplete="name" gives a SHIPPING or a BILLING phone.
- // I'm assuming here that this is a shipping phone.
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeTel() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<input id=\"id\" autocomplete=\"tel\">",
- TEST_SHIPPING_PHONE_UNFORMATTED, "id", false, true, true);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeBillingTel() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<input id=\"id\" autocomplete=\"billing tel\">",
- TEST_PHONE_UNFORMATTED, "id", true, false, true);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeShippingTel() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<input id=\"id\" autocomplete=\"shipping tel\">",
- TEST_SHIPPING_PHONE_UNFORMATTED, "id", false, true, true);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeEmail() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<input id=\"id\" autocomplete=\"email\" type=\"email\">",
- TEST_EMAIL, "id", false, false, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeCCName() throws InterruptedException, TimeoutException {
- verifyOneField(
- "<input id=\"id\" autocomplete=\"cc-name\">",
- TEST_NAME, "id", false, false, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeCCNumber() throws InterruptedException, TimeoutException {
- verifyOneField(
- "<input id=\"id\" autocomplete=\"cc-number\">",
- TEST_CC_NUMBER, "id", false, false, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeCCCsc() throws InterruptedException, TimeoutException {
- verifyOneField(
- "<input id=\"id\" autocomplete=\"cc-csc\">",
- TEST_CC_CSC, "id", false, false, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeCCExp() throws InterruptedException, TimeoutException {
- verifyOneField(
- "<input id=\"id\" autocomplete=\"cc-exp\" type=\"month\" value=\"1111-11\">",
- "" + TEST_CC_EXP_YEAR + "-" + TEST_CC_EXP_MONTH,
- "id", false, false, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeCCExpMonth() throws InterruptedException, TimeoutException {
- verifyOneField(
- "<select id=\"id\" autocomplete=\"cc-exp-month\">"
- + " <option value=\"1\" selected>1</option>"
- + " <option value=\"2\">2</option>"
- + " <option value=\"3\">3</option>"
- + " <option value=\"4\">4</option>"
- + " <option value=\"5\">5</option>"
- + " <option value=\"6\">6</option>"
- + " <option value=\"7\">7</option>"
- + " <option value=\"8\">8</option>"
- + " <option value=\"9\">9</option>"
- + " <option value=\"10\">10</option>"
- + " <option value=\"11\">11</option>"
- + " <option value=\"12\">12</option>"
- + "</select>",
- "" + TEST_CC_EXP_MONTH, "id", false, false, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeCCExpYear() throws InterruptedException, TimeoutException {
- verifyOneField(
- "<select id=\"id\" autocomplete=\"cc-exp-year\">"
- + " <option value=\"2011\" selected>2011</option>"
- + " <option value=\"2012\">2012</option>"
- + " <option value=\"2013\">2013</option>"
- + " <option value=\"2014\">2014</option>"
- + " <option value=\"2015\">2015</option>"
- + "</select>",
- "" + TEST_CC_EXP_YEAR, "id", false, false, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeBillingCountry() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<select id=\"id\" autocomplete=\"billing country\">"
- + " <option value=\"NL\" selected>Netherlands</option>"
- + " <option value=\"US\">United States</option>"
- + " <option value=\"SE\">Sweden</option>"
- + " <option value=\"RU\">Russia</option>"
- + "</select>",
- TEST_BILLING_COUNTRY, "id", true, false, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeBillingPostalCode() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<input id=\"id\" autocomplete=\"billing postal-code\">",
- TEST_BILLING_ZIP, "id", false, false, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeBillingAddressLine1() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<input id=\"id\" autocomplete=\"billing address-line1\">",
- TEST_BILLING1, "id", true, false, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeBillingAddressLine2() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<input id=\"id\" autocomplete=\"billing address-line2\">",
- TEST_BILLING2, "id", true, false, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeBillingStreetAddress() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<textarea id=\"id\" autocomplete=\"billing street-address\"></textarea>",
- TEST_BILLING_STREET, "id", true, false, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeBillingLocality() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<input id=\"id\" autocomplete=\"billing locality\">",
- TEST_BILLING_CITY, "id", true, false, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeBillingRegion() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<input id=\"id\" autocomplete=\"billing region\">",
- TEST_BILLING_STATE, "id", true, false, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeShippingCountry() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<select id=\"id\" autocomplete=\"shipping country\">"
- + " <option value=\"NL\" selected>Netherlands</option>"
- + " <option value=\"US\">United States</option>"
- + " <option value=\"SE\">Sweden</option>"
- + " <option value=\"RU\">Russia</option>"
- + "</select>",
- TEST_SHIPPING_COUNTRY, "id", false, true, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeShippingPostalCode() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<input id=\"id\" autocomplete=\"shipping postal-code\">",
- TEST_SHIPPING_ZIP, "id", false, true, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeShippingAddressLine1() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<input id=\"id\" autocomplete=\"shipping address-line1\">",
- TEST_SHIPPING1, "id", false, true, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeShippingAddressLine2() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<input id=\"id\" autocomplete=\"shipping address-line2\">",
- TEST_SHIPPING2, "id", false, true, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeShippingStreetAddress() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<textarea id=\"id\" autocomplete=\"shipping street-address\"></textarea>",
- TEST_SHIPPING_STREET, "id", false, true, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeShippingLocality() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<input id=\"id\" autocomplete=\"shipping locality\">",
- TEST_SHIPPING_CITY, "id", false, true, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRacTypeShippingRegion() throws InterruptedException, TimeoutException {
- verifyOneFieldWithCc(
- "<input id=\"id\" autocomplete=\"shipping region\">",
- TEST_SHIPPING_STATE, "id", false, true, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRefuseToShowWithNoCcField() throws InterruptedException, TimeoutException {
- String requested = "<input id=\"id\" autocomplete=\"shipping locality\">";
- setUpAndExpectFailedRequestAutocomplete(
- UrlUtils.encodeHtmlDataUri(HTML_PRELUDE + requested + HTML_POSTLUDE),
- false, true, false);
- }
-
- @SmallTest
- @Feature({"autofill"})
- public void testRefuseToShowWithNoAutocompleteAttributes()
- throws InterruptedException, TimeoutException {
- String requested = "<input id=\"id-cc-csc\">"
- + "<input id=\"id-email\" type=\"email\">"
- + "<input id=\"id-cc-name\">"
- + "<input id=\"id-shipping-locality\">";
- setUpAndExpectFailedRequestAutocomplete(
- UrlUtils.encodeHtmlDataUri(HTML_PRELUDE + requested + HTML_POSTLUDE),
- false, true, false);
- }
-
- private void verifyOneField(
- final String htmlFragment,
- final String expected, final String actualId,
- final boolean requestFullBilling,
- final boolean requestShipping, final boolean requestPhoneNumbers)
- throws InterruptedException, TimeoutException {
- verifyOneFieldWithOptionalCc(htmlFragment, expected, actualId,
- requestFullBilling, requestShipping, requestPhoneNumbers, false);
- }
-
- private void verifyOneFieldWithCc(
- final String htmlFragment,
- final String expected, final String actualId,
- final boolean requestFullBilling,
- final boolean requestShipping, final boolean requestPhoneNumbers)
- throws InterruptedException, TimeoutException {
- verifyOneFieldWithOptionalCc(htmlFragment, expected, actualId,
- requestFullBilling, requestShipping, requestPhoneNumbers, true);
- }
-
- private void verifyOneFieldWithOptionalCc(
- final String htmlFragment,
- final String expected, final String actualId,
- final boolean requestFullBilling,
- final boolean requestShipping, final boolean requestPhoneNumbers,
- final boolean requestCcInfo)
- throws InterruptedException, TimeoutException {
- final String optionalCcFragment = requestCcInfo
- ? "<input id=\"id-opt-cc-csc\" autocomplete=\"cc-csc\">"
- : "";
- final String url = UrlUtils.encodeHtmlDataUri(
- HTML_PRELUDE
- + htmlFragment
- + optionalCcFragment
- + HTML_POSTLUDE);
-
- setUpAndRequestAutocomplete(url, requestFullBilling, requestShipping, requestPhoneNumbers);
-
- final WebContents webContents = getActivity().getCurrentContentViewCore().getWebContents();
-
- assertEquals(actualId + " did not match",
- expected, DOMUtils.getNodeValue(webContents, actualId));
- if (requestCcInfo) {
- assertEquals("cc-csc did not match",
- TEST_CC_CSC, DOMUtils.getNodeValue(webContents, "id-opt-cc-csc"));
- }
- }
-
- private void verifyFieldsAreFilled(final boolean requestFullBilling,
- final boolean requestShipping, final boolean requestPhoneNumbers)
- throws InterruptedException, TimeoutException {
- setUpAndRequestAutocomplete(
- generatePage(requestFullBilling, requestShipping, requestPhoneNumbers),
- requestFullBilling, requestShipping, requestPhoneNumbers);
-
- final WebContents webContents = getActivity().getCurrentContentViewCore().getWebContents();
-
- assertEquals("billing name did not match",
- TEST_NAME, DOMUtils.getNodeValue(webContents, "id-billing-name"));
- assertEquals("email did not match",
- TEST_EMAIL, DOMUtils.getNodeValue(webContents, "id-email"));
-
- assertEquals("cc-name did not match",
- TEST_NAME, DOMUtils.getNodeValue(webContents, "id-cc-name"));
-
- assertEquals("cc-number did not match",
- TEST_CC_NUMBER, DOMUtils.getNodeValue(webContents, "id-cc-number"));
- assertEquals("cc-csc did not match",
- TEST_CC_CSC, DOMUtils.getNodeValue(webContents, "id-cc-csc"));
-
- assertEquals("cc-exp did not match",
- "" + TEST_CC_EXP_YEAR + "-" + TEST_CC_EXP_MONTH,
- DOMUtils.getNodeValue(webContents, "id-cc-exp"));
-
- assertEquals("cc-exp-month did not match",
- "" + TEST_CC_EXP_MONTH,
- DOMUtils.getNodeValue(webContents, "id-cc-exp-month"));
- assertEquals("cc-exp-year did not match",
- "" + TEST_CC_EXP_YEAR,
- DOMUtils.getNodeValue(webContents, "id-cc-exp-year"));
-
- assertEquals("billing postal-code did not match",
- TEST_BILLING_ZIP, DOMUtils.getNodeValue(webContents, "id-cc-zip"));
-
- if (requestFullBilling) {
- assertEquals("billing address-line1 did not match",
- TEST_BILLING1, DOMUtils.getNodeValue(webContents, "id-cc-1"));
- assertEquals("billing address-line2 did not match",
- TEST_BILLING2, DOMUtils.getNodeValue(webContents, "id-cc-2"));
- assertEquals("billing street-address did not match",
- TEST_BILLING_STREET, DOMUtils.getNodeValue(webContents, "id-cc-str"));
- assertEquals("billing locality did not match",
- TEST_BILLING_CITY, DOMUtils.getNodeValue(webContents, "id-cc-city"));
- assertEquals("billing region did not match",
- TEST_BILLING_STATE, DOMUtils.getNodeValue(webContents, "id-cc-state"));
- assertEquals("billing country did not match",
- TEST_BILLING_COUNTRY, DOMUtils.getNodeValue(webContents, "id-cc-country"));
-
- if (requestPhoneNumbers) {
- assertEquals("billing tel did not match",
- TEST_PHONE_UNFORMATTED,
- DOMUtils.getNodeValue(webContents, "id-cc-tel"));
- }
- }
-
- if (requestShipping) {
- assertEquals("shipping name did not match",
- TEST_SHIPPING_NAME, DOMUtils.getNodeValue(webContents, "id-h-name"));
- assertEquals("shipping postal-code did not match",
- TEST_SHIPPING_ZIP, DOMUtils.getNodeValue(webContents, "id-h-zip"));
- assertEquals("shipping address-line1 did not match",
- TEST_SHIPPING1, DOMUtils.getNodeValue(webContents, "id-h-1"));
- assertEquals("shipping address-line2 did not match",
- TEST_SHIPPING2, DOMUtils.getNodeValue(webContents, "id-h-2"));
- assertEquals("shipping street-address did not match",
- TEST_SHIPPING_STREET, DOMUtils.getNodeValue(webContents, "id-h-str"));
- assertEquals("shipping locality did not match",
- TEST_SHIPPING_CITY, DOMUtils.getNodeValue(webContents, "id-h-city"));
- assertEquals("shipping region did not match",
- TEST_SHIPPING_STATE, DOMUtils.getNodeValue(webContents, "id-h-state"));
- assertEquals("shipping country did not match",
- TEST_SHIPPING_COUNTRY,
- DOMUtils.getNodeValue(webContents, "id-h-country"));
-
- // It is currently unspecified whether autocomplete="name" gives a SHIPPING or
- // a BILLING name. I'm assuming here that this is a shipping name.
- assertEquals("name did not match",
- TEST_SHIPPING_NAME, DOMUtils.getNodeValue(webContents, "id-name"));
-
- if (requestPhoneNumbers) {
- assertEquals("shipping tel did not match",
- TEST_SHIPPING_PHONE_UNFORMATTED,
- DOMUtils.getNodeValue(webContents, "id-h-tel"));
-
- // It is currently unspecified whether autocomplete="name" gives a SHIPPING or
- // a BILLING phone. I'm assuming here that this is a shipping phone.
- assertEquals("tel did not match",
- TEST_SHIPPING_PHONE_UNFORMATTED,
- DOMUtils.getNodeValue(webContents, "id-tel"));
- }
- }
- }
-
- // Wait and assert helper methods -------------------------------------------------------------
-
- private void setUpAndRequestAutocomplete(final String url,
- final boolean requestFullBilling,
- final boolean requestShipping,
- final boolean requestPhoneNumbers) throws InterruptedException, TimeoutException {
- setUpAndRequestAutocompleteImpl(url,
- requestFullBilling, requestShipping, requestPhoneNumbers,
- false);
- }
-
- private void setUpAndExpectFailedRequestAutocomplete(final String url,
- final boolean requestFullBilling,
- final boolean requestShipping,
- final boolean requestPhoneNumbers) throws InterruptedException, TimeoutException {
- setUpAndRequestAutocompleteImpl(url,
- requestFullBilling, requestShipping, requestPhoneNumbers,
- true);
- }
-
- private void setUpAndRequestAutocompleteImpl(final String url,
- final boolean requestFullBilling,
- final boolean requestShipping,
- final boolean requestPhoneNumbers,
- final boolean expectFailure)
- throws InterruptedException, TimeoutException {
- startMainActivityWithURL(url);
-
- final ContentViewCore viewCore = getActivity().getCurrentContentViewCore();
- final WebContents webContents = getActivity().getCurrentContentViewCore().getWebContents();
-
- AutofillDialogResult.ResultWallet result = new AutofillDialogResult.ResultWallet(
- TEST_EMAIL, "Google Transaction ID",
- new AutofillDialogResult.ResultCard(
- TEST_CC_EXP_MONTH, TEST_CC_EXP_YEAR,
- TEST_CC_NUMBER, TEST_CC_CSC),
- new AutofillDialogResult.ResultAddress(
- TEST_NAME, TEST_PHONE,
- TEST_BILLING_STREET,
- TEST_BILLING_CITY, TEST_BILLING_DL, TEST_BILLING_STATE,
- TEST_BILLING_ZIP, TEST_BILLING_SORTING_CODE, TEST_BILLING_COUNTRY,
- TEST_BILLING_LANGUAGE),
- new AutofillDialogResult.ResultAddress(
- TEST_SHIPPING_NAME, TEST_SHIPPING_PHONE,
- TEST_SHIPPING_STREET,
- TEST_SHIPPING_CITY, TEST_SHIPPING_DL, TEST_SHIPPING_STATE,
- TEST_SHIPPING_ZIP, TEST_SHIPPING_SORTING_CODE, TEST_SHIPPING_COUNTRY,
- TEST_SHIPPING_LANGUAGE));
- MockAutofillDialogController.installMockFactory(
- DIALOG_CALLBACK_DELAY_MILLISECONDS,
- result,
- true, "", "", "", "",
- requestFullBilling, requestShipping, requestPhoneNumbers);
-
- DOMUtils.clickNode(this, viewCore, "id-button");
- waitForInputFieldFill(webContents);
-
- if (!expectFailure) {
- assertEquals("requestAutocomplete failed",
- "succeeded",
- DOMUtils.getNodeContents(webContents, "was-autocompleted"));
- } else {
- assertEquals("requestAutocomplete succeeded when it should be failing",
- "failed",
- DOMUtils.getNodeContents(webContents, "was-autocompleted"));
- }
- }
-
- private void waitForInputFieldFill(final WebContents webContents) throws InterruptedException {
- CriteriaHelper.pollInstrumentationThread(
- new Criteria("requestAutocomplete() never completed.") {
- @Override
- public boolean isSatisfied() {
- String wasAutocompleted;
- try {
- wasAutocompleted = DOMUtils.getNodeContents(
- webContents, "was-autocompleted");
- } catch (InterruptedException e) {
- return false;
- } catch (TimeoutException e) {
- return false;
- }
- return TextUtils.equals("succeeded", wasAutocompleted)
- || TextUtils.equals("failed", wasAutocompleted);
- }
- });
- }
-}

Powered by Google App Engine
This is Rietveld 408576698