OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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; | 5 package org.chromium.chrome.browser; |
6 | 6 |
7 import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_NON_LOW_E
ND_DEVICE; | 7 import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_NON_LOW_E
ND_DEVICE; |
8 | 8 |
9 import android.content.DialogInterface; | 9 import android.content.DialogInterface; |
10 import android.content.pm.ActivityInfo; | 10 import android.content.pm.ActivityInfo; |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 import org.chromium.chrome.test.ChromeTabbedActivityTestBase; | 55 import org.chromium.chrome.test.ChromeTabbedActivityTestBase; |
56 import org.chromium.chrome.test.util.ApplicationTestUtils; | 56 import org.chromium.chrome.test.util.ApplicationTestUtils; |
57 import org.chromium.chrome.test.util.ChromeRestriction; | 57 import org.chromium.chrome.test.util.ChromeRestriction; |
58 import org.chromium.chrome.test.util.ChromeTabUtils; | 58 import org.chromium.chrome.test.util.ChromeTabUtils; |
59 import org.chromium.chrome.test.util.MenuUtils; | 59 import org.chromium.chrome.test.util.MenuUtils; |
60 import org.chromium.chrome.test.util.NewTabPageTestUtils; | 60 import org.chromium.chrome.test.util.NewTabPageTestUtils; |
61 import org.chromium.chrome.test.util.OverviewModeBehaviorWatcher; | 61 import org.chromium.chrome.test.util.OverviewModeBehaviorWatcher; |
62 import org.chromium.content.browser.ContentViewCore; | 62 import org.chromium.content.browser.ContentViewCore; |
63 import org.chromium.content.browser.test.util.Criteria; | 63 import org.chromium.content.browser.test.util.Criteria; |
64 import org.chromium.content.browser.test.util.CriteriaHelper; | 64 import org.chromium.content.browser.test.util.CriteriaHelper; |
| 65 import org.chromium.content.browser.test.util.DOMUtils; |
65 import org.chromium.content.browser.test.util.JavaScriptUtils; | 66 import org.chromium.content.browser.test.util.JavaScriptUtils; |
66 import org.chromium.content.browser.test.util.UiUtils; | 67 import org.chromium.content.browser.test.util.UiUtils; |
67 import org.chromium.content.common.ContentSwitches; | 68 import org.chromium.content.common.ContentSwitches; |
68 import org.chromium.content_public.browser.WebContents; | 69 import org.chromium.content_public.browser.WebContents; |
69 import org.chromium.content_public.browser.WebContentsObserver; | 70 import org.chromium.content_public.browser.WebContentsObserver; |
70 import org.chromium.net.test.EmbeddedTestServer; | 71 import org.chromium.net.test.EmbeddedTestServer; |
71 | 72 |
72 import java.io.File; | 73 import java.io.File; |
73 import java.util.Locale; | 74 import java.util.Locale; |
74 import java.util.concurrent.Callable; | 75 import java.util.concurrent.Callable; |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
270 | 271 |
271 ChromeTabUtils.closeCurrentTab(getInstrumentation(), getActivity()); | 272 ChromeTabUtils.closeCurrentTab(getInstrumentation(), getActivity()); |
272 getInstrumentation().runOnMainSync(new Runnable() { | 273 getInstrumentation().runOnMainSync(new Runnable() { |
273 @Override | 274 @Override |
274 public void run() { | 275 public void run() { |
275 assertEquals(tabCount, getActivity().getCurrentTabModel().getCou
nt()); | 276 assertEquals(tabCount, getActivity().getCurrentTabModel().getCou
nt()); |
276 } | 277 } |
277 }); | 278 }); |
278 } | 279 } |
279 | 280 |
| 281 private void assertWaitForKeyboardStatus(final boolean show) throws Interrup
tedException { |
| 282 CriteriaHelper.pollUiThread(new Criteria() { |
| 283 @Override |
| 284 public boolean isSatisfied() { |
| 285 updateFailureReason("expected keyboard show: " + show); |
| 286 return show |
| 287 == org.chromium.ui.UiUtils.isKeyboardShowing( |
| 288 getActivity(), getActivity().getTabsView()); |
| 289 } |
| 290 }); |
| 291 } |
| 292 |
| 293 /** |
| 294 * Verify that opening a new tab, switching to an existing tab and closing c
urrent tab hide |
| 295 * keyboard. |
| 296 */ |
| 297 @LargeTest |
| 298 @Restriction(ChromeRestriction.RESTRICTION_TYPE_TABLET) |
| 299 @Feature({"Android-TabSwitcher"}) |
| 300 @RetryOnFailure |
| 301 public void testHideKeyboard() throws Exception { |
| 302 mTestServer = EmbeddedTestServer.createAndStartServer(getInstrumentation
().getContext()); |
| 303 |
| 304 // Open a new tab(The 1st tab) and click node. |
| 305 ChromeTabUtils.fullyLoadUrlInNewTab( |
| 306 getInstrumentation(), getActivity(), mTestServer.getURL(TEST_FIL
E_PATH), false); |
| 307 assertEquals("Failed to click node.", true, |
| 308 DOMUtils.clickNode( |
| 309 this, getActivity().getActivityTab().getContentViewCore(
), "input_text")); |
| 310 assertWaitForKeyboardStatus(true); |
| 311 |
| 312 // Open a new tab(the 2nd tab). |
| 313 ChromeTabUtils.fullyLoadUrlInNewTab( |
| 314 getInstrumentation(), getActivity(), mTestServer.getURL(TEST_FIL
E_PATH), false); |
| 315 assertWaitForKeyboardStatus(false); |
| 316 |
| 317 // Click node in the 2nd tab. |
| 318 DOMUtils.clickNode(this, getActivity().getActivityTab().getContentViewCo
re(), "input_text"); |
| 319 assertWaitForKeyboardStatus(true); |
| 320 |
| 321 // Switch to the 1st tab. |
| 322 ChromeTabUtils.switchTabInCurrentTabModel(getActivity(), 1); |
| 323 assertWaitForKeyboardStatus(false); |
| 324 |
| 325 // Click node in the 1st tab. |
| 326 DOMUtils.clickNode(this, getActivity().getActivityTab().getContentViewCo
re(), "input_text"); |
| 327 assertWaitForKeyboardStatus(true); |
| 328 |
| 329 // Close current tab(the 1st tab). |
| 330 ChromeTabUtils.closeCurrentTab(getInstrumentation(), getActivity()); |
| 331 assertWaitForKeyboardStatus(false); |
| 332 } |
| 333 |
280 /** | 334 /** |
281 * Verify that opening a new tab and navigating immediately sets a size on t
he newly created | 335 * Verify that opening a new tab and navigating immediately sets a size on t
he newly created |
282 * renderer. https://crbug.com/434477. | 336 * renderer. https://crbug.com/434477. |
283 * @throws InterruptedException | 337 * @throws InterruptedException |
284 * @throws TimeoutException | 338 * @throws TimeoutException |
285 */ | 339 */ |
286 @SmallTest | 340 @SmallTest |
287 @RetryOnFailure | 341 @RetryOnFailure |
288 public void testNewTabSetsContentViewSize() throws InterruptedException, Tim
eoutException { | 342 public void testNewTabSetsContentViewSize() throws InterruptedException, Tim
eoutException { |
289 ChromeTabUtils.newTabFromMenu(getInstrumentation(), getActivity()); | 343 ChromeTabUtils.newTabFromMenu(getInstrumentation(), getActivity()); |
(...skipping 1427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1717 throws InterruptedException { | 1771 throws InterruptedException { |
1718 CriteriaHelper.pollInstrumentationThread( | 1772 CriteriaHelper.pollInstrumentationThread( |
1719 Criteria.equals(expected, new Callable<Boolean>() { | 1773 Criteria.equals(expected, new Callable<Boolean>() { |
1720 @Override | 1774 @Override |
1721 public Boolean call() { | 1775 public Boolean call() { |
1722 return fileToCheck.exists(); | 1776 return fileToCheck.exists(); |
1723 } | 1777 } |
1724 })); | 1778 })); |
1725 } | 1779 } |
1726 } | 1780 } |
OLD | NEW |