Chromium Code Reviews| 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"}) |