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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/infobar/InfoBarTest.java

Issue 2130083002: Re-enable DataReductionPromoInfoBar tests and fix flakiness (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@settingsPage
Patch Set: move calendar instantiation Created 4 years, 5 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
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/infobar/DataReductionPromoInfoBar.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/javatests/src/org/chromium/chrome/browser/infobar/InfoBarTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/InfoBarTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/InfoBarTest.java
index 94e66c4c6a848269e4e9313ae61d843db4315d74..e646d97c43ad7276bd7657e58962e76cb0282898 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/InfoBarTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/InfoBarTest.java
@@ -6,6 +6,7 @@ package org.chromium.chrome.browser.infobar;
import static org.chromium.base.test.util.ScalableTimeout.scaleTimeout;
+import android.content.Context;
import android.os.Environment;
import android.test.UiThreadTest;
import android.test.suitebuilder.annotation.MediumTest;
@@ -14,6 +15,8 @@ import android.test.suitebuilder.annotation.Smoke;
import org.chromium.base.CommandLine;
import org.chromium.base.ContextUtils;
import org.chromium.base.ThreadUtils;
+import org.chromium.base.test.util.AdvancedMockContext;
+import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.base.test.util.DisabledTest;
import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.UrlUtils;
@@ -54,6 +57,26 @@ public class InfoBarTest extends ChromeActivityTestCaseBase<ChromeActivity> {
private EmbeddedTestServer mTestServer;
private InfoBarTestAnimationListener mListener;
+ private void waitUntilNoInfoBarsExist() throws InterruptedException {
+ CriteriaHelper.pollUiThread(new Criteria() {
+ @Override
+ public boolean isSatisfied() {
+ return getInfoBars().isEmpty();
+ }
+ });
+ }
+
+ private void waitUntilDataReductionPromoInfoBarAppears() throws InterruptedException {
+ CriteriaHelper.pollUiThread(new Criteria() {
+ @Override
+ public boolean isSatisfied() {
+ List<InfoBar> infobars = getInfoBars();
+ if (infobars.size() != 1) return false;
+ return infobars.get(0) instanceof DataReductionPromoInfoBar;
+ }
+ });
+ }
+
public InfoBarTest() {
super(ChromeActivity.class);
}
@@ -82,6 +105,11 @@ public class InfoBarTest extends ChromeActivityTestCaseBase<ChromeActivity> {
mTestServer = EmbeddedTestServer.createAndStartFileServer(
getInstrumentation().getContext(), Environment.getExternalStorageDirectory());
+
+ // Using an AdvancedMockContext allows us to use a fresh in-memory SharedPreference.
+ Context context = new AdvancedMockContext(
+ getInstrumentation().getTargetContext().getApplicationContext());
+ ContextUtils.initApplicationContextForTests(context);
}
@Override
@@ -174,10 +202,10 @@ public class InfoBarTest extends ChromeActivityTestCaseBase<ChromeActivity> {
* it.
*/
@MediumTest
+ @CommandLineFlags.Add("force-fieldtrials=DataCompressionProxyPromoVisibility/Enabled")
@Feature({"Browser", "Main"})
- @DisabledTest // crbug.com/625038
public void testDataReductionPromoInfoBar() throws InterruptedException {
- ThreadUtils.runOnUiThread(new Runnable() {
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
@Override
public void run() {
assertFalse("Data Reduction Proxy enabled",
@@ -189,21 +217,20 @@ public class InfoBarTest extends ChromeActivityTestCaseBase<ChromeActivity> {
.putString(SHARED_PREF_DISPLAYED_FRE_OR_SECOND_PROMO_VERSION, M51_VERSION)
.apply();
// Add an infobar.
- DataReductionPromoInfoBar.maybeLaunchPromoInfoBar(
+ assertTrue(DataReductionPromoInfoBar.maybeLaunchPromoInfoBar(
getActivity(), getActivity().getActivityTab().getWebContents(),
- "http://google.com", false, false, HttpURLConnection.HTTP_OK);
+ "http://google.com", false, false, HttpURLConnection.HTTP_OK));
}
});
- assertTrue("InfoBar not added", mListener.addInfoBarAnimationFinished());
+ waitUntilDataReductionPromoInfoBarAppears();
final List<InfoBar> infoBars = getInfoBars();
- assertEquals("Wrong infobar count", 1, infoBars.size());
assertTrue("InfoBar does not have primary button",
InfoBarUtil.hasPrimaryButton(infoBars.get(0)));
assertTrue("InfoBar does not have secondary button",
InfoBarUtil.hasSecondaryButton(infoBars.get(0)));
- ThreadUtils.runOnUiThread(new Runnable() {
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
@Override
public void run() {
InfoBarUtil.clickPrimaryButton(infoBars.get(0));
@@ -211,10 +238,9 @@ public class InfoBarTest extends ChromeActivityTestCaseBase<ChromeActivity> {
});
// The renderer should have been killed and the infobar removed.
- assertTrue("InfoBar not removed.", mListener.removeInfoBarAnimationFinished());
- assertTrue("Wrong infobar count", getInfoBars().isEmpty());
+ waitUntilNoInfoBarsExist();
- ThreadUtils.runOnUiThread(new Runnable() {
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
@Override
public void run() {
assertTrue("Data Reduction Proxy not enabled",
@@ -236,10 +262,10 @@ public class InfoBarTest extends ChromeActivityTestCaseBase<ChromeActivity> {
* it.
*/
@MediumTest
+ @CommandLineFlags.Add("force-fieldtrials=DataCompressionProxyPromoVisibility/Enabled")
@Feature({"Browser", "Main"})
- @DisabledTest // crbug.com/625038
public void testDataReductionPromoInfoBarDismissed() throws InterruptedException {
- ThreadUtils.runOnUiThread(new Runnable() {
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
@Override
public void run() {
assertFalse("Data Reduction Proxy enabled",
@@ -251,21 +277,20 @@ public class InfoBarTest extends ChromeActivityTestCaseBase<ChromeActivity> {
.putString(SHARED_PREF_DISPLAYED_FRE_OR_SECOND_PROMO_VERSION, M51_VERSION)
.apply();
// Add an infobar.
- DataReductionPromoInfoBar.maybeLaunchPromoInfoBar(
+ assertTrue(DataReductionPromoInfoBar.maybeLaunchPromoInfoBar(
getActivity(), getActivity().getActivityTab().getWebContents(),
- "http://google.com", false, false, HttpURLConnection.HTTP_OK);
+ "http://google.com", false, false, HttpURLConnection.HTTP_OK));
}
});
- assertTrue("InfoBar not added", mListener.addInfoBarAnimationFinished());
+ waitUntilDataReductionPromoInfoBarAppears();
final List<InfoBar> infoBars = getInfoBars();
- assertEquals("Wrong infobar count", 1, infoBars.size());
assertTrue("InfoBar does not have primary button",
InfoBarUtil.hasPrimaryButton(infoBars.get(0)));
assertTrue("InfoBar does not have secondary button",
InfoBarUtil.hasSecondaryButton(infoBars.get(0)));
- ThreadUtils.runOnUiThread(new Runnable() {
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
@Override
public void run() {
InfoBarUtil.clickSecondaryButton(infoBars.get(0));
@@ -273,10 +298,9 @@ public class InfoBarTest extends ChromeActivityTestCaseBase<ChromeActivity> {
});
// The renderer should have been killed and the infobar removed.
- assertTrue("InfoBar not removed.", mListener.removeInfoBarAnimationFinished());
- assertTrue("Wrong infobar count", getInfoBars().isEmpty());
+ waitUntilNoInfoBarsExist();
- ThreadUtils.runOnUiThread(new Runnable() {
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
@Override
public void run() {
assertFalse("Data Reduction Proxy enabled",
@@ -296,8 +320,8 @@ public class InfoBarTest extends ChromeActivityTestCaseBase<ChromeActivity> {
*/
@UiThreadTest
@MediumTest
+ @CommandLineFlags.Add("force-fieldtrials=DataCompressionProxyPromoVisibility/Enabled")
@Feature({"Browser", "Main"})
- @DisabledTest // crbug.com/625038
public void testDataReductionPromoInfoBarPostM48Install() {
assertFalse("Data Reduction Proxy enabled",
DataReductionProxySettings.getInstance().isDataReductionProxyEnabled());
@@ -321,8 +345,8 @@ public class InfoBarTest extends ChromeActivityTestCaseBase<ChromeActivity> {
*/
@UiThreadTest
@MediumTest
+ @CommandLineFlags.Add("force-fieldtrials=DataCompressionProxyPromoVisibility/Enabled")
@Feature({"Browser", "Main"})
- @DisabledTest // crbug.com/625038
public void testDataReductionPromoInfoBarFreOptOut() {
// Try to add an infobar. Infobar should not be added since the first run experience or
// second run promo hasn't been shown.
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/infobar/DataReductionPromoInfoBar.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698