| Index: chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryTest.java
|
| index b8313e57918732ca8ea8682faf0e283b6f9c5298..be60094217da5db1ae4a1c03b055193bc6dd43fc 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryTest.java
|
| @@ -9,11 +9,6 @@
|
| import android.view.View;
|
| import android.view.ViewGroup;
|
| import android.widget.HorizontalScrollView;
|
| -
|
| -import org.junit.Assert;
|
| -import org.junit.Rule;
|
| -import org.junit.Test;
|
| -import org.junit.runner.RunWith;
|
|
|
| import org.chromium.base.ThreadUtils;
|
| import org.chromium.base.test.util.CommandLineFlags;
|
| @@ -25,8 +20,7 @@
|
| import org.chromium.chrome.browser.ChromeActivity;
|
| import org.chromium.chrome.browser.ChromeSwitches;
|
| import org.chromium.chrome.browser.autofill.PersonalDataManager.AutofillProfile;
|
| -import org.chromium.chrome.test.ChromeActivityTestRule;
|
| -import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
|
| +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;
|
| @@ -42,16 +36,9 @@
|
| /**
|
| * Integration tests for autofill keyboard accessory.
|
| */
|
| -@RunWith(ChromeJUnit4ClassRunner.class)
|
| +@CommandLineFlags.Add({ChromeSwitches.ENABLE_AUTOFILL_KEYBOARD_ACCESSORY})
|
| @RetryOnFailure
|
| -@CommandLineFlags.Add({ChromeSwitches.ENABLE_AUTOFILL_KEYBOARD_ACCESSORY,
|
| - ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
|
| - ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG})
|
| -public class AutofillKeyboardAccessoryTest {
|
| - @Rule
|
| - public ChromeActivityTestRule<ChromeActivity> mActivityTestRule =
|
| - new ChromeActivityTestRule<>(ChromeActivity.class);
|
| -
|
| +public class AutofillKeyboardAccessoryTest extends ChromeActivityTestCaseBase<ChromeActivity> {
|
| private final AtomicReference<ContentViewCore> mViewCoreRef =
|
| new AtomicReference<ContentViewCore>();
|
| private final AtomicReference<WebContents> mWebContentsRef = new AtomicReference<WebContents>();
|
| @@ -59,10 +46,18 @@
|
| private final AtomicReference<ViewGroup> mKeyboardAccessoryRef =
|
| new AtomicReference<ViewGroup>();
|
|
|
| + public AutofillKeyboardAccessoryTest() {
|
| + super(ChromeActivity.class);
|
| + }
|
| +
|
| + @Override
|
| + public void startMainActivity() throws InterruptedException {}
|
| +
|
| private void loadTestPage(boolean isRtl) throws InterruptedException, ExecutionException,
|
| TimeoutException {
|
| - mActivityTestRule.startMainActivityWithURL(UrlUtils.encodeHtmlDataUri("<html"
|
| - + (isRtl ? " dir=\"rtl\"" : "") + "><head>"
|
| + startMainActivityWithURL(UrlUtils.encodeHtmlDataUri("<html"
|
| + + (isRtl ? " dir=\"rtl\"" : "")
|
| + + "><head>"
|
| + "<meta name=\"viewport\""
|
| + "content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0\" /></head>"
|
| + "<body><form method=\"POST\">"
|
| @@ -95,12 +90,11 @@
|
| ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| @Override
|
| public void run() {
|
| - mViewCoreRef.set(mActivityTestRule.getActivity().getCurrentContentViewCore());
|
| + mViewCoreRef.set(getActivity().getCurrentContentViewCore());
|
| mWebContentsRef.set(mViewCoreRef.get().getWebContents());
|
| mContainerRef.set(mViewCoreRef.get().getContainerView());
|
| - mKeyboardAccessoryRef.set(mActivityTestRule.getActivity()
|
| - .getWindowAndroid()
|
| - .getKeyboardAccessoryView());
|
| + mKeyboardAccessoryRef.set(
|
| + getActivity().getWindowAndroid().getKeyboardAccessoryView());
|
| }
|
| });
|
| DOMUtils.waitForNonZeroNodeBounds(mWebContentsRef.get(), "fn");
|
| @@ -109,49 +103,42 @@
|
| /**
|
| * Autofocused fields should not show a keyboard accessory.
|
| */
|
| - @Test
|
| - @MediumTest
|
| - @Feature({"keyboard-accessory"})
|
| - public void testAutofocusedFieldDoesNotShowKeyboardAccessory()
|
| - throws InterruptedException, ExecutionException, TimeoutException {
|
| + @MediumTest
|
| + @Feature({"keyboard-accessory"})
|
| + public void testAutofocusedFieldDoesNotShowKeyboardAccessory() throws InterruptedException,
|
| + ExecutionException, TimeoutException {
|
| loadTestPage(false);
|
| - Assert.assertTrue("Keyboard accessory should be hidden.",
|
| - ThreadUtils
|
| - .runOnUiThreadBlocking(new Callable<Boolean>() {
|
| - @Override
|
| - public Boolean call() {
|
| - return mKeyboardAccessoryRef.get().getVisibility() == View.GONE;
|
| - }
|
| - })
|
| - .booleanValue());
|
| + assertTrue("Keyboard accessory should be hidden.",
|
| + ThreadUtils.runOnUiThreadBlocking(new Callable<Boolean>() {
|
| + @Override
|
| + public Boolean call() {
|
| + return mKeyboardAccessoryRef.get().getVisibility() == View.GONE;
|
| + }
|
| + }).booleanValue());
|
| }
|
|
|
| /**
|
| * Tapping on an input field should show a keyboard and its keyboard accessory.
|
| */
|
| - @Test
|
| - @MediumTest
|
| - @Feature({"keyboard-accessory"})
|
| - public void testTapInputFieldShowsKeyboardAccessory()
|
| - throws ExecutionException, InterruptedException, TimeoutException {
|
| + @MediumTest
|
| + @Feature({"keyboard-accessory"})
|
| + public void testTapInputFieldShowsKeyboardAccessory() throws ExecutionException,
|
| + InterruptedException, TimeoutException {
|
| loadTestPage(false);
|
| DOMUtils.clickNode(mViewCoreRef.get(), "fn");
|
| CriteriaHelper.pollUiThread(new Criteria("Keyboard should be showing.") {
|
| @Override
|
| public boolean isSatisfied() {
|
| - return UiUtils.isKeyboardShowing(
|
| - mActivityTestRule.getActivity(), mContainerRef.get());
|
| - }
|
| - });
|
| - Assert.assertTrue("Keyboard accessory should be showing.",
|
| - ThreadUtils
|
| - .runOnUiThreadBlocking(new Callable<Boolean>() {
|
| - @Override
|
| - public Boolean call() {
|
| - return mKeyboardAccessoryRef.get().getVisibility() == View.VISIBLE;
|
| - }
|
| - })
|
| - .booleanValue());
|
| + return UiUtils.isKeyboardShowing(getActivity(), mContainerRef.get());
|
| + }
|
| + });
|
| + assertTrue("Keyboard accessory should be showing.",
|
| + ThreadUtils.runOnUiThreadBlocking(new Callable<Boolean>() {
|
| + @Override
|
| + public Boolean call() {
|
| + return mKeyboardAccessoryRef.get().getVisibility() == View.VISIBLE;
|
| + }
|
| + }).booleanValue());
|
| }
|
|
|
| /**
|
| @@ -161,17 +148,15 @@
|
| @MediumTest
|
| @Feature({"keyboard-accessory"})
|
| */
|
| - @Test
|
| @FlakyTest(message = "https://crbug.com/563640")
|
| - public void testSwitchFieldsRescrollsKeyboardAccessory()
|
| - throws ExecutionException, InterruptedException, TimeoutException {
|
| + public void testSwitchFieldsRescrollsKeyboardAccessory() throws ExecutionException,
|
| + InterruptedException, TimeoutException {
|
| loadTestPage(false);
|
| DOMUtils.clickNode(mViewCoreRef.get(), "fn");
|
| CriteriaHelper.pollUiThread(new Criteria("Keyboard should be showing.") {
|
| @Override
|
| public boolean isSatisfied() {
|
| - return UiUtils.isKeyboardShowing(
|
| - mActivityTestRule.getActivity(), mContainerRef.get());
|
| + return UiUtils.isKeyboardShowing(getActivity(), mContainerRef.get());
|
| }
|
| });
|
| ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| @@ -212,19 +197,17 @@
|
| * RTL is only supported on Jelly Bean MR 1+.
|
| * http://android-developers.blogspot.com/2013/03/native-rtl-support-in-android-42.html
|
| */
|
| - @Test
|
| @MediumTest
|
| @Feature({"keyboard-accessory"})
|
| @MinAndroidSdkLevel(Build.VERSION_CODES.JELLY_BEAN_MR1)
|
| - public void testSwitchFieldsRescrollsKeyboardAccessoryRtl()
|
| - throws ExecutionException, InterruptedException, TimeoutException {
|
| + public void testSwitchFieldsRescrollsKeyboardAccessoryRtl() throws ExecutionException,
|
| + InterruptedException, TimeoutException {
|
| loadTestPage(true);
|
| DOMUtils.clickNode(mViewCoreRef.get(), "fn");
|
| CriteriaHelper.pollUiThread(new Criteria("Keyboard should be showing.") {
|
| @Override
|
| public boolean isSatisfied() {
|
| - return UiUtils.isKeyboardShowing(
|
| - mActivityTestRule.getActivity(), mContainerRef.get());
|
| + return UiUtils.isKeyboardShowing(getActivity(), mContainerRef.get());
|
| }
|
| });
|
| ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| @@ -268,18 +251,16 @@
|
| * Selecting a keyboard accessory suggestion should hide the keyboard and its keyboard
|
| * accessory.
|
| */
|
| - @Test
|
| - @MediumTest
|
| - @Feature({"keyboard-accessory"})
|
| - public void testSelectSuggestionHidesKeyboardAccessory()
|
| - throws ExecutionException, InterruptedException, TimeoutException {
|
| + @MediumTest
|
| + @Feature({"keyboard-accessory"})
|
| + public void testSelectSuggestionHidesKeyboardAccessory() throws ExecutionException,
|
| + InterruptedException, TimeoutException {
|
| loadTestPage(false);
|
| DOMUtils.clickNode(mViewCoreRef.get(), "fn");
|
| CriteriaHelper.pollUiThread(new Criteria("Keyboard should be showing.") {
|
| @Override
|
| public boolean isSatisfied() {
|
| - return UiUtils.isKeyboardShowing(
|
| - mActivityTestRule.getActivity(), mContainerRef.get());
|
| + return UiUtils.isKeyboardShowing(getActivity(), mContainerRef.get());
|
| }
|
| });
|
| ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| @@ -294,19 +275,16 @@
|
| CriteriaHelper.pollUiThread(new Criteria("Keyboard should be hidden.") {
|
| @Override
|
| public boolean isSatisfied() {
|
| - return !UiUtils.isKeyboardShowing(
|
| - mActivityTestRule.getActivity(), mContainerRef.get());
|
| - }
|
| - });
|
| - Assert.assertTrue("Keyboard accessory should be hidden.",
|
| - ThreadUtils
|
| - .runOnUiThreadBlocking(new Callable<Boolean>() {
|
| - @Override
|
| - public Boolean call() {
|
| - return mKeyboardAccessoryRef.get().getVisibility() == View.GONE;
|
| - }
|
| - })
|
| - .booleanValue());
|
| + return !UiUtils.isKeyboardShowing(getActivity(), mContainerRef.get());
|
| + }
|
| + });
|
| + assertTrue("Keyboard accessory should be hidden.",
|
| + ThreadUtils.runOnUiThreadBlocking(new Callable<Boolean>() {
|
| + @Override
|
| + public Boolean call() {
|
| + return mKeyboardAccessoryRef.get().getVisibility() == View.GONE;
|
| + }
|
| + }).booleanValue());
|
| }
|
|
|
| private View getSuggestionAt(int index) {
|
|
|