| Index: chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageRequestTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageRequestTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageRequestTest.java
|
| index 6283b7556a9587090e917b2ebd852fd3ccee222e..da04976d8fb75c2f3e8edc38a9a9887133ff1d04 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageRequestTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageRequestTest.java
|
| @@ -4,17 +4,26 @@
|
|
|
| package org.chromium.chrome.browser.offlinepages;
|
|
|
| +import android.support.test.InstrumentationRegistry;
|
| import android.support.test.filters.SmallTest;
|
|
|
| +import org.junit.Assert;
|
| +import org.junit.Before;
|
| +import org.junit.Rule;
|
| +import org.junit.Test;
|
| +import org.junit.runner.RunWith;
|
| +
|
| import org.chromium.base.ThreadUtils;
|
| import org.chromium.base.test.util.CommandLineFlags;
|
| import org.chromium.base.test.util.RetryOnFailure;
|
| import org.chromium.chrome.browser.ChromeActivity;
|
| +import org.chromium.chrome.browser.ChromeSwitches;
|
| import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.OfflinePageModelObserver;
|
| import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.SavePageCallback;
|
| import org.chromium.chrome.browser.profiles.Profile;
|
| import org.chromium.chrome.browser.tab.Tab;
|
| -import org.chromium.chrome.test.ChromeActivityTestCaseBase;
|
| +import org.chromium.chrome.test.ChromeActivityTestRule;
|
| +import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
|
| import org.chromium.components.offlinepages.SavePageResult;
|
| import org.chromium.net.NetworkChangeNotifier;
|
| import org.chromium.net.test.EmbeddedTestServer;
|
| @@ -23,8 +32,15 @@ import java.util.concurrent.Semaphore;
|
| import java.util.concurrent.TimeUnit;
|
|
|
| /** Unit tests for offline page request handling. */
|
| -@CommandLineFlags.Add("enable-features=OfflineBookmarks")
|
| -public class OfflinePageRequestTest extends ChromeActivityTestCaseBase<ChromeActivity> {
|
| +@RunWith(ChromeJUnit4ClassRunner.class)
|
| +@CommandLineFlags.Add({"enable-features=OfflineBookmarks",
|
| + ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
|
| + ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG})
|
| +public class OfflinePageRequestTest {
|
| + @Rule
|
| + public ChromeActivityTestRule<ChromeActivity> mActivityTestRule =
|
| + new ChromeActivityTestRule<>(ChromeActivity.class);
|
| +
|
| private static final String TEST_PAGE = "/chrome/test/data/android/test.html";
|
| private static final String ABOUT_PAGE = "/chrome/test/data/android/about.html";
|
| private static final int TIMEOUT_MS = 5000;
|
| @@ -33,13 +49,9 @@ public class OfflinePageRequestTest extends ChromeActivityTestCaseBase<ChromeAct
|
|
|
| private OfflinePageBridge mOfflinePageBridge;
|
|
|
| - public OfflinePageRequestTest() {
|
| - super(ChromeActivity.class);
|
| - }
|
| -
|
| - @Override
|
| - protected void setUp() throws Exception {
|
| - super.setUp();
|
| + @Before
|
| + public void setUp() throws Exception {
|
| + mActivityTestRule.startMainActivityOnBlankPage();
|
| final Semaphore semaphore = new Semaphore(0);
|
| ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| @Override
|
| @@ -64,38 +76,29 @@ public class OfflinePageRequestTest extends ChromeActivityTestCaseBase<ChromeAct
|
| }
|
| }
|
| });
|
| - assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS));
|
| - }
|
| -
|
| - @Override
|
| - protected void tearDown() throws Exception {
|
| - super.tearDown();
|
| - }
|
| -
|
| - @Override
|
| - public void startMainActivity() throws InterruptedException {
|
| - startMainActivityOnBlankPage();
|
| + Assert.assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS));
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| @RetryOnFailure
|
| public void testLoadOfflinePageOnDisconnectedNetwork() throws Exception {
|
| EmbeddedTestServer testServer = EmbeddedTestServer.createAndStartServer(
|
| - getInstrumentation().getContext());
|
| + InstrumentationRegistry.getInstrumentation().getContext());
|
| String testUrl = testServer.getURL(TEST_PAGE);
|
| String aboutUrl = testServer.getURL(ABOUT_PAGE);
|
|
|
| - Tab tab = getActivity().getActivityTab();
|
| + Tab tab = mActivityTestRule.getActivity().getActivityTab();
|
|
|
| // Load and save an offline page.
|
| savePage(testUrl);
|
| - assertFalse(isErrorPage(tab));
|
| - assertFalse(isOfflinePage(tab));
|
| + Assert.assertFalse(isErrorPage(tab));
|
| + Assert.assertFalse(isOfflinePage(tab));
|
|
|
| // Load another page.
|
| - loadUrl(aboutUrl);
|
| - assertFalse(isErrorPage(tab));
|
| - assertFalse(isOfflinePage(tab));
|
| + mActivityTestRule.loadUrl(aboutUrl);
|
| + Assert.assertFalse(isErrorPage(tab));
|
| + Assert.assertFalse(isOfflinePage(tab));
|
|
|
| // Stop the server and also disconnect the network.
|
| testServer.stopAndDestroyServer();
|
| @@ -107,25 +110,26 @@ public class OfflinePageRequestTest extends ChromeActivityTestCaseBase<ChromeAct
|
| });
|
|
|
| // Load the page that has an offline copy. The offline page should be shown.
|
| - loadUrl(testUrl);
|
| - assertFalse(isErrorPage(tab));
|
| - assertTrue(isOfflinePage(tab));
|
| + mActivityTestRule.loadUrl(testUrl);
|
| + Assert.assertFalse(isErrorPage(tab));
|
| + Assert.assertTrue(isOfflinePage(tab));
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| @RetryOnFailure
|
| public void testLoadOfflinePageWithFragmentOnDisconnectedNetwork() throws Exception {
|
| - EmbeddedTestServer testServer =
|
| - EmbeddedTestServer.createAndStartServer(getInstrumentation().getContext());
|
| + EmbeddedTestServer testServer = EmbeddedTestServer.createAndStartServer(
|
| + InstrumentationRegistry.getInstrumentation().getContext());
|
| String testUrl = testServer.getURL(TEST_PAGE);
|
| String testUrlWithFragment = testUrl + "#ref";
|
|
|
| - Tab tab = getActivity().getActivityTab();
|
| + Tab tab = mActivityTestRule.getActivity().getActivityTab();
|
|
|
| // Load and save an offline page for the url with a fragment.
|
| savePage(testUrlWithFragment);
|
| - assertFalse(isErrorPage(tab));
|
| - assertFalse(isOfflinePage(tab));
|
| + Assert.assertFalse(isErrorPage(tab));
|
| + Assert.assertFalse(isOfflinePage(tab));
|
|
|
| // Stop the server and also disconnect the network.
|
| testServer.stopAndDestroyServer();
|
| @@ -137,31 +141,32 @@ public class OfflinePageRequestTest extends ChromeActivityTestCaseBase<ChromeAct
|
| });
|
|
|
| // Load the URL without the fragment. The offline page should be shown.
|
| - loadUrl(testUrl);
|
| - assertFalse(isErrorPage(tab));
|
| - assertTrue(isOfflinePage(tab));
|
| + mActivityTestRule.loadUrl(testUrl);
|
| + Assert.assertFalse(isErrorPage(tab));
|
| + Assert.assertTrue(isOfflinePage(tab));
|
| }
|
|
|
| private void savePage(String url) throws InterruptedException {
|
| - loadUrl(url);
|
| + mActivityTestRule.loadUrl(url);
|
|
|
| final Semaphore semaphore = new Semaphore(0);
|
| ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| @Override
|
| public void run() {
|
| - mOfflinePageBridge.savePage(getActivity().getActivityTab().getWebContents(),
|
| + mOfflinePageBridge.savePage(
|
| + mActivityTestRule.getActivity().getActivityTab().getWebContents(),
|
| CLIENT_ID, new SavePageCallback() {
|
| @Override
|
| public void onSavePageDone(
|
| int savePageResult, String url, long offlineId) {
|
| - assertEquals(
|
| + Assert.assertEquals(
|
| "Save failed.", SavePageResult.SUCCESS, savePageResult);
|
| semaphore.release();
|
| }
|
| });
|
| }
|
| });
|
| - assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS));
|
| + Assert.assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS));
|
| }
|
|
|
| private boolean isOfflinePage(final Tab tab) {
|
|
|