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 8002714ff228fccb542ac325e300427d0a46e211..22472ce9929ab429eac2d604ccac404572c71da5 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 |
@@ -109,7 +109,7 @@ public class AppBannerManagerTest extends ChromeShellTestBase { |
@Override |
public boolean isSatisfied() { |
return mDetailsDelegate.mNumRetrieved == numExpected |
- && mAppBannerManager.getNumActiveFetchersForTesting() == 0; |
+ && !mAppBannerManager.isFetcherActiveForTesting(); |
} |
}); |
} |
@@ -253,4 +253,22 @@ public class AppBannerManagerTest extends ChromeShellTestBase { |
assertTrue(waitUntilAppDetailsRetrieved(6)); |
assertTrue(waitUntilAppBannerInfoBarAppears()); |
} |
+ |
+ @MediumTest |
+ @Feature({"AppBanners"}) |
+ 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().getActiveTab(), NATIVE_APP_URL))); |
+ |
+ final Integer iteration = Integer.valueOf(i); |
+ assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() { |
+ @Override |
+ public boolean isSatisfied() { |
+ return mDetailsDelegate.mNumRetrieved == iteration; |
+ } |
+ })); |
+ } |
+ } |
} |