Commit e0241b9d authored by Jinsuk Kim's avatar Jinsuk Kim Committed by Commit Bot

GestureNav: Fix flaky tests

ChromeTabUtils.fullyLoadUrlInNewTab sometimes takes long to finish
on Tablet. Replaced it with ActivityTestRule.loadUrl. What they do is
different but doesn't matter for the goal of the tests as long as they
load a given URL.

Swiping left and immediately swiping right on rendered pages
sometimes fails. This CL gives a bit of delay before the second
swiping starts for the gesture navigation to be ready.

The tests for left swipe were removed, since those testing right
swipe also include left swipe.

Tested locally on Nexus 7.

Bug: 1041233, 1051221
Change-Id: I4bf866f2521c02b3c4500d47776ba80fdea91ac7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2125914
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: default avatarDonn Denman <donnd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#756075}
parent 5d568762
...@@ -6,6 +6,7 @@ package org.chromium.chrome.browser.gesturenav; ...@@ -6,6 +6,7 @@ package org.chromium.chrome.browser.gesturenav;
import android.app.Activity; import android.app.Activity;
import android.graphics.Point; import android.graphics.Point;
import android.os.Handler;
import android.os.SystemClock; import android.os.SystemClock;
import android.support.test.InstrumentationRegistry; import android.support.test.InstrumentationRegistry;
import android.support.test.filters.SmallTest; import android.support.test.filters.SmallTest;
...@@ -21,8 +22,6 @@ import org.junit.runner.RunWith; ...@@ -21,8 +22,6 @@ import org.junit.runner.RunWith;
import org.chromium.base.ActivityState; import org.chromium.base.ActivityState;
import org.chromium.base.ApplicationStatus; import org.chromium.base.ApplicationStatus;
import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.base.test.util.FlakyTest;
import org.chromium.base.test.util.RetryOnFailure;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimationHandler; import org.chromium.chrome.browser.compositor.animation.CompositorAnimationHandler;
import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
...@@ -32,6 +31,7 @@ import org.chromium.chrome.test.util.ChromeTabUtils; ...@@ -32,6 +31,7 @@ import org.chromium.chrome.test.util.ChromeTabUtils;
import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.content_public.browser.test.util.Criteria; import org.chromium.content_public.browser.test.util.Criteria;
import org.chromium.content_public.browser.test.util.CriteriaHelper; import org.chromium.content_public.browser.test.util.CriteriaHelper;
import org.chromium.content_public.browser.test.util.TestThreadUtils;
import org.chromium.content_public.browser.test.util.TouchCommon; import org.chromium.content_public.browser.test.util.TouchCommon;
import org.chromium.content_public.common.ContentUrlConstants; import org.chromium.content_public.common.ContentUrlConstants;
import org.chromium.net.test.EmbeddedTestServer; import org.chromium.net.test.EmbeddedTestServer;
...@@ -47,6 +47,7 @@ public class NavigationHandlerTest { ...@@ -47,6 +47,7 @@ public class NavigationHandlerTest {
private static final String RENDERED_PAGE = "/chrome/test/data/android/navigate/simple.html"; private static final String RENDERED_PAGE = "/chrome/test/data/android/navigate/simple.html";
private static final boolean LEFT_EDGE = true; private static final boolean LEFT_EDGE = true;
private static final boolean RIGHT_EDGE = false; private static final boolean RIGHT_EDGE = false;
private static final int PAGELOAD_TIMEOUT_MS = 4000;
private EmbeddedTestServer mTestServer; private EmbeddedTestServer mTestServer;
private float mEdgeWidthPx; private float mEdgeWidthPx;
...@@ -115,45 +116,27 @@ public class NavigationHandlerTest { ...@@ -115,45 +116,27 @@ public class NavigationHandlerTest {
@Test @Test
@SmallTest @SmallTest
public void testLeftSwipeNavigateBackOnNativePage() { public void testSwipeNavigateOnNativePage() {
ChromeTabUtils.fullyLoadUrlInNewTab(InstrumentationRegistry.getInstrumentation(), mActivityTestRule.loadUrl(UrlConstants.NTP_URL);
mActivityTestRule.getActivity(), UrlConstants.RECENT_TABS_URL, false); mActivityTestRule.loadUrl(UrlConstants.RECENT_TABS_URL);
assertNavigateOnSwipeFrom(LEFT_EDGE, UrlConstants.NTP_URL);
}
@Test
@SmallTest
public void testRightSwipeNavigateForwardOnNativePage() {
ChromeTabUtils.fullyLoadUrlInNewTab(InstrumentationRegistry.getInstrumentation(),
mActivityTestRule.getActivity(), UrlConstants.RECENT_TABS_URL, false);
assertNavigateOnSwipeFrom(LEFT_EDGE, UrlConstants.NTP_URL); assertNavigateOnSwipeFrom(LEFT_EDGE, UrlConstants.NTP_URL);
assertNavigateOnSwipeFrom(RIGHT_EDGE, UrlConstants.RECENT_TABS_URL); assertNavigateOnSwipeFrom(RIGHT_EDGE, UrlConstants.RECENT_TABS_URL);
} }
@Test @Test
@SmallTest @SmallTest
@RetryOnFailure public void testSwipeNavigateOnRenderedPage() {
@FlakyTest(message = "crbug.com/1041233") mTestServer = EmbeddedTestServer.createAndStartServer(
public void testLeftSwipeNavigateBackOnRenderedPage() { InstrumentationRegistry.getInstrumentation().getContext());
mTestServer = EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext()); mActivityTestRule.loadUrl(mTestServer.getURL(RENDERED_PAGE));
ChromeTabUtils.fullyLoadUrlInNewTab(InstrumentationRegistry.getInstrumentation(),
mActivityTestRule.getActivity(), mTestServer.getURL(RENDERED_PAGE), false);
assertNavigateOnSwipeFrom(LEFT_EDGE, UrlConstants.NTP_URL);
}
@Test
@SmallTest
@FlakyTest(message = "crbug.com/1051221")
public void testRightSwipeNavigateForwardOnRenderedPage() {
mTestServer = EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext());
ChromeTabUtils.fullyLoadUrlInNewTab(InstrumentationRegistry.getInstrumentation(),
mActivityTestRule.getActivity(), mTestServer.getURL(RENDERED_PAGE), false);
mActivityTestRule.loadUrl(ContentUrlConstants.ABOUT_BLANK_DISPLAY_URL); mActivityTestRule.loadUrl(ContentUrlConstants.ABOUT_BLANK_DISPLAY_URL);
assertNavigateOnSwipeFrom(LEFT_EDGE, mTestServer.getURL(RENDERED_PAGE)); assertNavigateOnSwipeFrom(LEFT_EDGE, mTestServer.getURL(RENDERED_PAGE));
assertNavigateOnSwipeFrom(RIGHT_EDGE, ContentUrlConstants.ABOUT_BLANK_DISPLAY_URL); // clang-format off
TestThreadUtils.runOnUiThreadBlocking(() -> {
new Handler().postDelayed(() -> assertNavigateOnSwipeFrom(
RIGHT_EDGE, ContentUrlConstants.ABOUT_BLANK_DISPLAY_URL), PAGELOAD_TIMEOUT_MS);
});
// clang-format on
} }
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment