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) { |