Chromium Code Reviews| Index: chrome/android/javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTest.java |
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTest.java |
| index de712f35744a0cf043a0036543ee1a7f0da79e9f..0cbe4b38cc6651d48642940c5bf8fadd069586a1 100644 |
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTest.java |
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTest.java |
| @@ -43,6 +43,15 @@ import java.util.concurrent.atomic.AtomicInteger; |
| */ |
| public class FullscreenManagerTest extends ChromeTabbedActivityTestBase { |
| + private static final String LONG_HTML_WITH_AUTO_FOCUS_INPUT_TEST_PAGE = |
| + UrlUtils.encodeHtmlDataUri("<html>" |
| + + "<body style='height:10000px;'>" |
| + + "<p>The text input is focused automatically on load." |
| + + " The top controls should not hide when page is scrolled.</p><br/>" |
| + + "<input id=\"input_text\" type=\"text\" autofocus/>" |
| + + "</body>" |
| + + "</html>"); |
| + |
| private static final String LONG_HTML_TEST_PAGE = UrlUtils.encodeHtmlDataUri( |
| "<html><body style='height:10000px;'></body></html>"); |
| private static final String LONG_FULLSCREEN_API_HTML_TEST_PAGE = UrlUtils.encodeHtmlDataUri( |
| @@ -320,6 +329,35 @@ public class FullscreenManagerTest extends ChromeTabbedActivityTestBase { |
| scrollTopControls(false); |
| } |
| + @LargeTest |
| + @Feature({"Fullscreen"}) |
| + public void testTopControlsShownWhenInputIsFocused() |
| + throws InterruptedException, ExecutionException { |
| + startMainActivityWithURL(LONG_HTML_WITH_AUTO_FOCUS_INPUT_TEST_PAGE); |
| + |
| + ChromeFullscreenManager fullscreenManager = getActivity().getFullscreenManager(); |
| + assertEquals(fullscreenManager.getControlOffset(), 0f); |
| + |
| + fullscreenManager.setAnimationDurationsForTest(1, 1); |
| + |
| + int topControlsHeight = fullscreenManager.getTopControlsHeight(); |
| + float dragX = 50f; |
| + float dragStartY = topControlsHeight * 3; |
| + float dragEndY = dragStartY - topControlsHeight * 2; |
| + long downTime = SystemClock.uptimeMillis(); |
| + dragStart(dragX, dragStartY, downTime); |
| + dragTo(dragX, dragX, dragStartY, dragEndY, 100, downTime); |
| + dragEnd(dragX, dragEndY, downTime); |
| + assertTrue(waitForNoBrowserTopControlsOffset()); |
| + assertEquals(fullscreenManager.getControlOffset(), 0f); |
| + |
| + Tab tab = getActivity().getActivityTab(); |
| + singleClickView(tab.getView()); |
|
Ted C
2015/07/07 16:46:33
This line "could" end up causing issues if the cli
|
| + waitForEditableNodeToLoseFocus(tab); |
| + scrollTopControls(false); |
| + scrollTopControls(true); |
| + } |
| + |
| private void scrollTopControls(boolean show) throws InterruptedException, ExecutionException { |
| ChromeFullscreenManager fullscreenManager = getActivity().getFullscreenManager(); |
| int topControlsHeight = fullscreenManager.getTopControlsHeight(); |
| @@ -485,6 +523,26 @@ public class FullscreenManagerTest extends ChromeTabbedActivityTestBase { |
| }); |
| } |
| + private boolean waitForEditableNodeToLoseFocus(final Tab tab) throws InterruptedException { |
| + return CriteriaHelper.pollForCriteria(new Criteria() { |
|
Ted C
2015/07/07 16:46:33
use pollForUIThreadCriteria here instead. then yo
raghu
2015/07/07 22:24:15
Acknowledged.
Would you like me to do it for all t
Ted C
2015/07/07 22:26:50
Nah, just this one. The other ones should be done
|
| + @Override |
| + public boolean isSatisfied() { |
| + try { |
| + return ThreadUtils.runOnUiThread(new Callable<Boolean>() { |
| + @Override |
| + public Boolean call() throws Exception { |
| + ContentViewCore contentViewCore = tab.getContentViewCore(); |
| + return !contentViewCore.isFocusedNodeEditable(); |
| + } |
| + }).get(); |
| + } catch (Exception e) { |
| + fail(e.getMessage()); |
| + return false; |
| + } |
| + } |
| + }); |
| + } |
| + |
| @Override |
| protected void startMainActivityWithURL(String url) throws InterruptedException { |
| super.startMainActivityWithURL(url); |