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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/toolbar/ToolbarTest.java

Issue 2695843003: Fix NTP not showing error page when offline (Closed)
Patch Set: Added a test Created 3 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
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.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/toolbar/ToolbarTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/toolbar/ToolbarTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/toolbar/ToolbarTest.java
index ef6c740ad9eba75760500a49e5a5fb8470fcf647..42838fd0021d33993ddc5739e73b9bb64d17bf23 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/toolbar/ToolbarTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/toolbar/ToolbarTest.java
@@ -6,11 +6,14 @@ package org.chromium.chrome.browser.toolbar;
import android.support.test.filters.MediumTest;
+import org.chromium.base.ThreadUtils;
import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.Restriction;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeActivity;
+import org.chromium.chrome.browser.UrlConstants;
import org.chromium.chrome.browser.omnibox.UrlBar;
+import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.widget.findinpage.FindToolbar;
import org.chromium.chrome.test.ChromeActivityTestCaseBase;
import org.chromium.chrome.test.util.ChromeRestriction;
@@ -18,11 +21,14 @@ import org.chromium.chrome.test.util.MenuUtils;
import org.chromium.chrome.test.util.OmniboxTestUtils;
import org.chromium.content.browser.test.util.Criteria;
import org.chromium.content.browser.test.util.CriteriaHelper;
+import org.chromium.net.NetworkChangeNotifier;
+import org.chromium.net.test.EmbeddedTestServer;
/**
* Tests for toolbar manager behavior.
*/
public class ToolbarTest extends ChromeActivityTestCaseBase<ChromeActivity> {
+ private static final String TEST_PAGE = "/chrome/test/data/android/test.html";
public ToolbarTest() {
super(ChromeActivity.class);
@@ -53,6 +59,44 @@ public class ToolbarTest extends ChromeActivityTestCaseBase<ChromeActivity> {
});
}
+ private boolean isErrorPage(final Tab tab) {
+ final boolean[] isShowingError = new boolean[1];
David Trainor- moved to gerrit 2017/02/15 00:19:20 AtomicBoolean is another way to do it.
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ isShowingError[0] = tab.isShowingErrorPage();
+ }
+ });
+ return isShowingError[0];
+ }
+
+ @MediumTest
+ public void testNTPNavigatesToErrorPageOnDisconnectedNetwork() throws Exception {
+ EmbeddedTestServer testServer =
+ EmbeddedTestServer.createAndStartServer(getInstrumentation().getContext());
+ String testUrl = testServer.getURL(TEST_PAGE);
+
+ Tab tab = getActivity().getActivityTab();
+
+ // Load new tab page.
+ loadUrl(UrlConstants.NTP_URL);
+ assertEquals(UrlConstants.NTP_URL, tab.getUrl());
+ assertFalse(isErrorPage(tab));
+
+ // Stop the server and also disconnect the network.
+ testServer.stopAndDestroyServer();
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ NetworkChangeNotifier.forceConnectivityState(false);
+ }
+ });
+
+ loadUrl(testUrl);
+ assertEquals(testUrl, tab.getUrl());
+ assertTrue(isErrorPage(tab));
+ }
+
@MediumTest
@Restriction(ChromeRestriction.RESTRICTION_TYPE_TABLET)
@Feature({"Omnibox"})
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698