| Index: chrome/android/javatests/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java
|
| index 1c6f37be979eff73f6518b5d0628143da0ef8a95..6daf7c15071331d0c054f6b9b73f937e2f070e67 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java
|
| @@ -23,6 +23,7 @@ import android.widget.TextView;
|
| import org.chromium.base.ThreadUtils;
|
| import org.chromium.base.test.util.Feature;
|
| import org.chromium.chrome.R;
|
| +import org.chromium.chrome.browser.ShortcutHelper;
|
| import org.chromium.chrome.browser.infobar.AnimationHelper;
|
| import org.chromium.chrome.browser.infobar.AppBannerInfoBarAndroid;
|
| import org.chromium.chrome.browser.infobar.AppBannerInfoBarDelegateAndroid;
|
| @@ -161,6 +162,12 @@ public class AppBannerManagerTest extends ChromeTabbedActivityTestBase {
|
| mPackageManager = new TestPackageManager();
|
| AppBannerManager.setIsEnabledForTesting(true);
|
| AppBannerInfoBarDelegateAndroid.setPackageManagerForTesting(mPackageManager);
|
| + ShortcutHelper.setDelegateForTests(new ShortcutHelper.Delegate() {
|
| + @Override
|
| + public void sendBroadcast(Context context, Intent intent) {
|
| + // Ignore to prevent adding homescreen shortcuts.
|
| + }
|
| + });
|
|
|
| super.setUp();
|
|
|
| @@ -221,8 +228,7 @@ public class AppBannerManagerTest extends ChromeTabbedActivityTestBase {
|
|
|
| private void runFullNativeInstallPathway(String url, String expectedReferrer) throws Exception {
|
| // Visit a site that requests a banner.
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), url)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), url).assertLoaded();
|
| assertTrue(waitUntilAppDetailsRetrieved(1));
|
| assertEquals(mDetailsDelegate.mReferrer, expectedReferrer);
|
| assertTrue(waitUntilNoInfoBarsExist());
|
| @@ -232,8 +238,7 @@ public class AppBannerManagerTest extends ChromeTabbedActivityTestBase {
|
| final InfobarListener listener = new InfobarListener();
|
| container.setAnimationListener(listener);
|
| AppBannerManager.setTimeDeltaForTesting(1);
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), url)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), url).assertLoaded();
|
| assertTrue(waitUntilAppDetailsRetrieved(2));
|
| assertTrue(waitUntilAppBannerInfoBarAppears(NATIVE_APP_TITLE));
|
| assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() {
|
| @@ -295,48 +300,41 @@ public class AppBannerManagerTest extends ChromeTabbedActivityTestBase {
|
| @Feature({"AppBanners"})
|
| public void testBannerAppearsThenDoesNotAppearAgainForMonths() throws Exception {
|
| // Visit a site that requests a banner.
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL).assertLoaded();
|
| assertTrue(waitUntilAppDetailsRetrieved(1));
|
| assertTrue(waitUntilNoInfoBarsExist());
|
|
|
| // Indicate a day has passed, then revisit the page.
|
| AppBannerManager.setTimeDeltaForTesting(1);
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL).assertLoaded();
|
| assertTrue(waitUntilAppDetailsRetrieved(2));
|
| assertTrue(waitUntilAppBannerInfoBarAppears(NATIVE_APP_TITLE));
|
|
|
| // Revisit the page to make the banner go away, but don't explicitly dismiss it.
|
| // This hides the banner for a few months.
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL).assertLoaded();
|
| assertTrue(waitUntilAppDetailsRetrieved(3));
|
| assertTrue(waitUntilNoInfoBarsExist());
|
|
|
| // Wait a month until revisiting the page.
|
| AppBannerManager.setTimeDeltaForTesting(31);
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL).assertLoaded();
|
| assertTrue(waitUntilAppDetailsRetrieved(4));
|
| assertTrue(waitUntilNoInfoBarsExist());
|
|
|
| AppBannerManager.setTimeDeltaForTesting(32);
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL).assertLoaded();
|
| assertTrue(waitUntilAppDetailsRetrieved(5));
|
| assertTrue(waitUntilNoInfoBarsExist());
|
|
|
| // Wait two months until revisiting the page, which should pop up the banner.
|
| AppBannerManager.setTimeDeltaForTesting(61);
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL).assertLoaded();
|
| assertTrue(waitUntilAppDetailsRetrieved(6));
|
| assertTrue(waitUntilNoInfoBarsExist());
|
|
|
| AppBannerManager.setTimeDeltaForTesting(62);
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL).assertLoaded();
|
| assertTrue(waitUntilAppDetailsRetrieved(7));
|
| assertTrue(waitUntilAppBannerInfoBarAppears(NATIVE_APP_TITLE));
|
| }
|
| @@ -345,8 +343,7 @@ public class AppBannerManagerTest extends ChromeTabbedActivityTestBase {
|
| @Feature({"AppBanners"})
|
| public void testBlockedBannerDoesNotAppearAgainForMonths() throws Exception {
|
| // Visit a site that requests a banner.
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL).assertLoaded();
|
| assertTrue(waitUntilAppDetailsRetrieved(1));
|
| assertTrue(waitUntilNoInfoBarsExist());
|
|
|
| @@ -355,8 +352,7 @@ public class AppBannerManagerTest extends ChromeTabbedActivityTestBase {
|
| final InfobarListener listener = new InfobarListener();
|
| container.setAnimationListener(listener);
|
| AppBannerManager.setTimeDeltaForTesting(1);
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL).assertLoaded();
|
| assertTrue(waitUntilAppDetailsRetrieved(2));
|
| assertTrue(waitUntilAppBannerInfoBarAppears(NATIVE_APP_TITLE));
|
|
|
| @@ -374,27 +370,23 @@ public class AppBannerManagerTest extends ChromeTabbedActivityTestBase {
|
|
|
| // Waiting two months shouldn't be long enough.
|
| AppBannerManager.setTimeDeltaForTesting(61);
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL).assertLoaded();
|
| assertTrue(waitUntilAppDetailsRetrieved(3));
|
| assertTrue(waitUntilNoInfoBarsExist());
|
|
|
| AppBannerManager.setTimeDeltaForTesting(62);
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL).assertLoaded();
|
| assertTrue(waitUntilAppDetailsRetrieved(4));
|
| assertTrue(waitUntilNoInfoBarsExist());
|
|
|
| // Waiting three months should allow banners to reappear.
|
| AppBannerManager.setTimeDeltaForTesting(91);
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL).assertLoaded();
|
| assertTrue(waitUntilAppDetailsRetrieved(5));
|
| assertTrue(waitUntilNoInfoBarsExist());
|
|
|
| AppBannerManager.setTimeDeltaForTesting(92);
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL).assertLoaded();
|
| assertTrue(waitUntilAppDetailsRetrieved(6));
|
| assertTrue(waitUntilAppBannerInfoBarAppears(NATIVE_APP_TITLE));
|
| }
|
| @@ -404,8 +396,7 @@ public class AppBannerManagerTest extends ChromeTabbedActivityTestBase {
|
| public void testBitmapFetchersCanOverlapWithoutCrashing() throws Exception {
|
| // Visit a site that requests a banner rapidly and repeatedly.
|
| for (int i = 1; i <= 10; i++) {
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), NATIVE_APP_URL).assertLoaded();
|
|
|
| final Integer iteration = Integer.valueOf(i);
|
| assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() {
|
| @@ -422,8 +413,7 @@ public class AppBannerManagerTest extends ChromeTabbedActivityTestBase {
|
| public void testWebAppBannerAppears() throws Exception {
|
| // Visit the site in a new tab.
|
| loadUrlInNewTab("about:blank");
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), WEB_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), WEB_APP_URL).assertLoaded();
|
|
|
| assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() {
|
| @Override
|
| @@ -437,8 +427,7 @@ public class AppBannerManagerTest extends ChromeTabbedActivityTestBase {
|
|
|
| // Indicate a day has passed, then revisit the page to show the banner.
|
| AppBannerManager.setTimeDeltaForTesting(1);
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), WEB_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), WEB_APP_URL).assertLoaded();
|
| assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() {
|
| @Override
|
| public boolean isSatisfied() {
|
| @@ -459,8 +448,7 @@ public class AppBannerManagerTest extends ChromeTabbedActivityTestBase {
|
|
|
| // Visit the site in a new tab.
|
| loadUrlInNewTab("about:blank");
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), WEB_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), WEB_APP_URL).assertLoaded();
|
|
|
| assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() {
|
| @Override
|
| @@ -479,8 +467,7 @@ public class AppBannerManagerTest extends ChromeTabbedActivityTestBase {
|
|
|
| // Indicate a day has passed, then revisit the page to show the banner.
|
| AppBannerManager.setTimeDeltaForTesting(1);
|
| - assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActivityTab(), WEB_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActivityTab(), WEB_APP_URL).assertLoaded();
|
| assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() {
|
| @Override
|
| public boolean isSatisfied() {
|
|
|