Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5632)

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java

Issue 914813002: [App banners] Start addressing race conditions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Nits Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
+ }
+ }));
+ }
+ }
}

Powered by Google App Engine
This is Rietveld 408576698