| Index: chrome/android/javatests/src/org/chromium/chrome/browser/TabsTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/TabsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/TabsTest.java
|
| index 9c45b4bcb8e25002646619188b7b7532c28e23a1..ce173cb9e50b4d402d64d7818edab9b1ead10057 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/TabsTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/TabsTest.java
|
| @@ -62,6 +62,7 @@ import org.chromium.content.browser.ContentViewCore;
|
| import org.chromium.content.browser.test.util.CallbackHelper;
|
| 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.browser.test.util.JavaScriptUtils;
|
| import org.chromium.content.browser.test.util.UiUtils;
|
| import org.chromium.content.common.ContentSwitches;
|
| @@ -85,6 +86,8 @@ public class TabsTest extends ChromeTabbedActivityTestBase {
|
| private static final String TEST_FILE_PATH =
|
| "/chrome/test/data/android/tabstest/tabs_test.html";
|
| private static final String TEST_PAGE_FILE_PATH = "/chrome/test/data/google/google.html";
|
| + private static final String TEST_INPUT_FILE_PATH =
|
| + "/chrome/test/data/android/very_long_google.html";
|
|
|
| private EmbeddedTestServer mTestServer;
|
|
|
| @@ -278,6 +281,50 @@ public class TabsTest extends ChromeTabbedActivityTestBase {
|
| });
|
| }
|
|
|
| + private void assertWaitForKeyboardStatus(final boolean show) throws InterruptedException {
|
| + CriteriaHelper.pollUiThread(new Criteria() {
|
| + @Override
|
| + public boolean isSatisfied() {
|
| + updateFailureReason("expected keyboard show: " + show);
|
| + return show
|
| + == org.chromium.ui.UiUtils.isKeyboardShowing(
|
| + getActivity(), getActivity().getTabsView());
|
| + }
|
| + });
|
| + }
|
| +
|
| + /**
|
| + * Verify that opening a new tab, switching to an existing tab and closing current tab hide
|
| + * keyboard.
|
| + */
|
| + @MediumTest
|
| + public void testHideKeyboard() throws Exception {
|
| + mTestServer = EmbeddedTestServer.createAndStartFileServer(
|
| + getInstrumentation().getContext(), Environment.getExternalStorageDirectory());
|
| +
|
| + startMainActivityWithURL(mTestServer.getURL(TEST_INPUT_FILE_PATH));
|
| + DOMUtils.clickNode(this, getActivity().getActivityTab().getContentViewCore(), "textField");
|
| + assertWaitForKeyboardStatus(true);
|
| +
|
| + // Opens a new tab.
|
| + startMainActivityWithURL(mTestServer.getURL(TEST_INPUT_FILE_PATH));
|
| + assertWaitForKeyboardStatus(false);
|
| +
|
| + DOMUtils.clickNode(this, getActivity().getActivityTab().getContentViewCore(), "textField");
|
| + assertWaitForKeyboardStatus(true);
|
| +
|
| + // Switches to an existing tab.
|
| + ChromeTabUtils.switchTabInCurrentTabModel(getActivity(), 1);
|
| + assertWaitForKeyboardStatus(false);
|
| +
|
| + DOMUtils.clickNode(this, getActivity().getActivityTab().getContentViewCore(), "textField");
|
| + assertWaitForKeyboardStatus(true);
|
| +
|
| + // Closes current tab.
|
| + ChromeTabUtils.closeCurrentTab(getInstrumentation(), getActivity());
|
| + assertWaitForKeyboardStatus(false);
|
| + }
|
| +
|
| /**
|
| * Verify that opening a new tab and navigating immediately sets a size on the newly created
|
| * renderer. https://crbug.com/434477.
|
|
|