Fix 2 failed OfflineIndicatorController tests
Bug: 859849
Change-Id: I88b4dc690cef0d482bb9f4a49a9aa7b688e8ae45
Reviewed-on: https://chromium-review.googlesource.com/1136470
Reviewed-by: Peter Williamson <petewil@chromium.org>
Commit-Queue: Jian Li <jianli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575410}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorController.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorController.java
index ef1f356c..b38af80 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorController.java
@@ -18,6 +18,7 @@
import org.chromium.base.ApplicationStatus;
import org.chromium.base.ContextUtils;
+import org.chromium.base.VisibleForTesting;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeActivity;
@@ -46,6 +47,8 @@
private static final int DURATION_MS = 10000;
+ private static boolean sSkipSystemCheckForTesting = false;
+
@SuppressLint("StaticFieldLeak")
private static OfflineIndicatorController sInstance;
@@ -120,6 +123,8 @@
*/
@TargetApi(Build.VERSION_CODES.M)
private boolean performSystemCheckForValidatedNetwork() {
+ if (sSkipSystemCheckForTesting) return false;
+
// NetworkCapabilities.NET_CAPABILITY_VALIDATED is only available on Marshmallow and
// later versions.
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return false;
@@ -200,4 +205,9 @@
if (!mIsShowingOfflineIndicator) return;
snackbarManager.dismissSnackbars(this);
}
+
+ @VisibleForTesting
+ static void skipSystemCheckForTesting() {
+ sSkipSystemCheckForTesting = true;
+ }
}
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerTest.java
index 8da9b68..5582737 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerTest.java
@@ -15,7 +15,6 @@
import org.chromium.base.ThreadUtils;
import org.chromium.base.test.util.CommandLineFlags;
-import org.chromium.base.test.util.DisableIf;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.ChromeFeatureList;
@@ -49,6 +48,7 @@
@Before
public void setUp() throws Exception {
+ OfflineIndicatorController.skipSystemCheckForTesting();
mActivityTestRule.startMainActivityOnBlankPage();
ThreadUtils.runOnUiThreadBlocking(() -> {
if (!NetworkChangeNotifier.isInitialized()) {
@@ -93,7 +93,6 @@
}
@Test
- @DisableIf.Build(sdk_is_greater_than = 22, message = "https://crbug.com/859849")
@MediumTest
public void testHideOfflineIndicatorWhenBackToOnline() throws Exception {
EmbeddedTestServer testServer =
@@ -110,15 +109,13 @@
checkOfflineIndicatorVisibility(mActivityTestRule.getActivity(), true);
// Reconnect the network.
- ThreadUtils.runOnUiThreadBlocking(
- () -> { NetworkChangeNotifier.forceConnectivityState(true); });
+ setNetworkConnectivity(true);
// Offline indicator should go away.
checkOfflineIndicatorVisibility(mActivityTestRule.getActivity(), false);
}
@Test
- @DisableIf.Build(sdk_is_greater_than = 22, message = "https://crbug.com/859849")
@MediumTest
public void testDoNotShowOfflineIndicatorOnErrorPageWhenOffline() throws Exception {
EmbeddedTestServer testServer =