Index: chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeTest.java |
index 914066870cf745bc3c084ba7dabdd1d043202328..c6a60382397fc925520b33fc891b0fd8938c4fa2 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeTest.java |
@@ -4,17 +4,27 @@ |
package org.chromium.chrome.browser.offlinepages; |
+import android.support.test.InstrumentationRegistry; |
import android.support.test.filters.SmallTest; |
+import org.junit.After; |
+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.Callback; |
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.test.ChromeActivityTestCaseBase; |
+import org.chromium.chrome.test.ChromeActivityTestRule; |
+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; |
import org.chromium.components.offlinepages.DeletePageResult; |
import org.chromium.components.offlinepages.SavePageResult; |
import org.chromium.net.NetworkChangeNotifier; |
@@ -30,8 +40,15 @@ import java.util.concurrent.atomic.AtomicInteger; |
import java.util.concurrent.atomic.AtomicReference; |
/** Unit tests for {@link OfflinePageBridge}. */ |
-@CommandLineFlags.Add("enable-features=OfflineBookmarks") |
-public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActivity> { |
+@RunWith(ChromeJUnit4ClassRunner.class) |
+@CommandLineFlags.Add({"enable-features=OfflineBookmarks", |
+ ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, |
+ ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG}) |
+public class OfflinePageBridgeTest { |
+ @Rule |
+ public ChromeActivityTestRule<ChromeActivity> mActivityTestRule = |
+ new ChromeActivityTestRule<>(ChromeActivity.class); |
+ |
private static final String TEST_PAGE = "/chrome/test/data/android/about.html"; |
private static final int TIMEOUT_MS = 5000; |
private static final long POLLING_INTERVAL = 100; |
@@ -42,10 +59,6 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
private EmbeddedTestServer mTestServer; |
private String mTestPage; |
- public OfflinePageBridgeTest() { |
- super(ChromeActivity.class); |
- } |
- |
private void initializeBridgeForProfile(final boolean incognitoProfile) |
throws InterruptedException { |
final Semaphore semaphore = new Semaphore(0); |
@@ -71,12 +84,12 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
}); |
} |
}); |
- assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
+ Assert.assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
} |
- @Override |
- protected void setUp() throws Exception { |
- super.setUp(); |
+ @Before |
+ public void setUp() throws Exception { |
+ mActivityTestRule.startMainActivityOnBlankPage(); |
ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
@Override |
@@ -91,37 +104,34 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
initializeBridgeForProfile(false); |
- mTestServer = EmbeddedTestServer.createAndStartServer(getInstrumentation().getContext()); |
+ mTestServer = EmbeddedTestServer.createAndStartServer( |
+ InstrumentationRegistry.getInstrumentation().getContext()); |
mTestPage = mTestServer.getURL(TEST_PAGE); |
} |
- @Override |
- protected void tearDown() throws Exception { |
+ @After |
+ public void tearDown() throws Exception { |
mTestServer.stopAndDestroyServer(); |
- super.tearDown(); |
- } |
- |
- @Override |
- public void startMainActivity() throws InterruptedException { |
- startMainActivityOnBlankPage(); |
} |
+ @Test |
@SmallTest |
@RetryOnFailure |
public void testLoadOfflinePagesWhenEmpty() throws Exception { |
List<OfflinePageItem> offlinePages = getAllPages(); |
- assertEquals("Offline pages count incorrect.", 0, offlinePages.size()); |
+ Assert.assertEquals("Offline pages count incorrect.", 0, offlinePages.size()); |
} |
+ @Test |
@SmallTest |
@RetryOnFailure |
public void testAddOfflinePageAndLoad() throws Exception { |
- loadUrl(mTestPage); |
+ mActivityTestRule.loadUrl(mTestPage); |
savePage(SavePageResult.SUCCESS, mTestPage); |
List<OfflinePageItem> allPages = getAllPages(); |
OfflinePageItem offlinePage = allPages.get(0); |
- assertEquals("Offline pages count incorrect.", 1, allPages.size()); |
- assertEquals("Offline page item url incorrect.", mTestPage, offlinePage.getUrl()); |
+ Assert.assertEquals("Offline pages count incorrect.", 1, allPages.size()); |
+ Assert.assertEquals("Offline page item url incorrect.", mTestPage, offlinePage.getUrl()); |
// We don't care about the exact file size of the mhtml file: |
// - exact file size is not something that the end user sees or cares about |
@@ -133,33 +143,36 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
// OTOH, it still seems useful to assert that the file is not empty and that its size is in |
// the right ballpark. |
long size = offlinePage.getFileSize(); |
- assertTrue("Offline page item size is incorrect: " + size, 600 < size && size < 800); |
+ Assert.assertTrue("Offline page item size is incorrect: " + size, 600 < size && size < 800); |
} |
+ @Test |
@SmallTest |
@RetryOnFailure |
public void testGetPageByBookmarkId() throws Exception { |
- loadUrl(mTestPage); |
+ mActivityTestRule.loadUrl(mTestPage); |
savePage(SavePageResult.SUCCESS, mTestPage); |
OfflinePageItem offlinePage = getPageByClientId(BOOKMARK_ID); |
- assertEquals("Offline page item url incorrect.", mTestPage, offlinePage.getUrl()); |
- assertNull("Offline page is not supposed to exist", |
+ Assert.assertEquals("Offline page item url incorrect.", mTestPage, offlinePage.getUrl()); |
+ Assert.assertNull("Offline page is not supposed to exist", |
getPageByClientId(new ClientId(OfflinePageBridge.BOOKMARK_NAMESPACE, "-42"))); |
} |
+ @Test |
@SmallTest |
@RetryOnFailure |
public void testDeleteOfflinePage() throws Exception { |
deletePage(BOOKMARK_ID, DeletePageResult.SUCCESS); |
- loadUrl(mTestPage); |
+ mActivityTestRule.loadUrl(mTestPage); |
savePage(SavePageResult.SUCCESS, mTestPage); |
- assertNotNull( |
+ Assert.assertNotNull( |
"Offline page should be available, but it is not.", getPageByClientId(BOOKMARK_ID)); |
deletePage(BOOKMARK_ID, DeletePageResult.SUCCESS); |
- assertNull("Offline page should be gone, but it is available.", |
+ Assert.assertNull("Offline page should be gone, but it is available.", |
getPageByClientId(BOOKMARK_ID)); |
} |
+ @Test |
@CommandLineFlags.Add("disable-features=OfflinePagesSharing") |
@SmallTest |
@RetryOnFailure |
@@ -167,17 +180,19 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
@Override |
public void run() { |
- assertFalse("If offline page sharing is off, we should see the feature disabled", |
+ Assert.assertFalse( |
+ "If offline page sharing is off, we should see the feature disabled", |
OfflinePageBridge.isPageSharingEnabled()); |
} |
}); |
} |
+ @Test |
@SmallTest |
@RetryOnFailure |
public void testCheckPagesExistOffline() throws Exception { |
// If we save a page, then it should exist in the result. |
- loadUrl(mTestPage); |
+ mActivityTestRule.loadUrl(mTestPage); |
savePage(SavePageResult.SUCCESS, mTestPage); |
Set<String> testCases = new HashSet<>(); |
testCases.add(mTestPage); |
@@ -187,13 +202,14 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
Set<String> pages = checkPagesExistOffline(testCases); |
- assertEquals( |
+ Assert.assertEquals( |
"We only saved one page and queried for it, so the result should be one string.", 1, |
pages.size()); |
- assertTrue("The only page returned should be the page that was actually saved.", |
+ Assert.assertTrue("The only page returned should be the page that was actually saved.", |
pages.contains(mTestPage)); |
} |
+ @Test |
@SmallTest |
@RetryOnFailure |
public void testGetRequestsInQueue() throws Exception { |
@@ -201,15 +217,15 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
String namespace = "custom_tabs"; |
savePageLater(url, namespace); |
SavePageRequest[] requests = getRequestsInQueue(); |
- assertEquals(1, requests.length); |
- assertEquals(namespace, requests[0].getClientId().getNamespace()); |
- assertEquals(url, requests[0].getUrl()); |
+ Assert.assertEquals(1, requests.length); |
+ Assert.assertEquals(namespace, requests[0].getClientId().getNamespace()); |
+ Assert.assertEquals(url, requests[0].getUrl()); |
String url2 = "https://mail.google.com/"; |
String namespace2 = "last_n"; |
savePageLater(url2, namespace2); |
requests = getRequestsInQueue(); |
- assertEquals(2, requests.length); |
+ Assert.assertEquals(2, requests.length); |
HashSet<String> expectedUrls = new HashSet<>(); |
expectedUrls.add(url); |
@@ -220,20 +236,22 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
expectedNamespaces.add(namespace2); |
for (SavePageRequest request : requests) { |
- assertTrue(expectedNamespaces.contains(request.getClientId().getNamespace())); |
+ Assert.assertTrue(expectedNamespaces.contains(request.getClientId().getNamespace())); |
expectedNamespaces.remove(request.getClientId().getNamespace()); |
- assertTrue(expectedUrls.contains(request.getUrl())); |
+ Assert.assertTrue(expectedUrls.contains(request.getUrl())); |
expectedUrls.remove(request.getUrl()); |
} |
} |
+ @Test |
@SmallTest |
@RetryOnFailure |
public void testOfflinePageBridgeDisabledInIncognito() throws Exception { |
initializeBridgeForProfile(true); |
- assertEquals(null, mOfflinePageBridge); |
+ Assert.assertEquals(null, mOfflinePageBridge); |
} |
+ @Test |
@SmallTest |
@RetryOnFailure |
public void testRemoveRequestsFromQueue() throws Exception { |
@@ -246,22 +264,23 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
savePageLater(url2, namespace2); |
SavePageRequest[] requests = getRequestsInQueue(); |
- assertEquals(2, requests.length); |
+ Assert.assertEquals(2, requests.length); |
List<Long> requestsToRemove = new ArrayList<>(); |
requestsToRemove.add(Long.valueOf(requests[1].getRequestId())); |
List<OfflinePageBridge.RequestRemovedResult> removed = |
removeRequestsFromQueue(requestsToRemove); |
- assertEquals(requests[1].getRequestId(), removed.get(0).getRequestId()); |
- assertEquals(org.chromium.components.offlinepages.background.UpdateRequestResult.SUCCESS, |
+ Assert.assertEquals(requests[1].getRequestId(), removed.get(0).getRequestId()); |
+ Assert.assertEquals( |
+ org.chromium.components.offlinepages.background.UpdateRequestResult.SUCCESS, |
removed.get(0).getUpdateRequestResult()); |
SavePageRequest[] remaining = getRequestsInQueue(); |
- assertEquals(1, remaining.length); |
+ Assert.assertEquals(1, remaining.length); |
- assertEquals(requests[0].getRequestId(), remaining[0].getRequestId()); |
- assertEquals(requests[0].getUrl(), remaining[0].getUrl()); |
+ Assert.assertEquals(requests[0].getRequestId(), remaining[0].getRequestId()); |
+ Assert.assertEquals(requests[0].getUrl(), remaining[0].getUrl()); |
} |
private void savePage(final int expectedResult, final String expectedUrl) |
@@ -270,27 +289,29 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
@Override |
public void run() { |
- assertNotNull("Tab is null", getActivity().getActivityTab()); |
- assertEquals("URL does not match requested.", expectedUrl, |
- getActivity().getActivityTab().getUrl()); |
- assertNotNull("WebContents is null", |
- getActivity().getActivityTab().getWebContents()); |
- |
- mOfflinePageBridge.savePage(getActivity().getActivityTab().getWebContents(), |
+ Assert.assertNotNull( |
+ "Tab is null", mActivityTestRule.getActivity().getActivityTab()); |
+ Assert.assertEquals("URL does not match requested.", expectedUrl, |
+ mActivityTestRule.getActivity().getActivityTab().getUrl()); |
+ Assert.assertNotNull("WebContents is null", |
+ mActivityTestRule.getActivity().getActivityTab().getWebContents()); |
+ |
+ mOfflinePageBridge.savePage( |
+ mActivityTestRule.getActivity().getActivityTab().getWebContents(), |
BOOKMARK_ID, new SavePageCallback() { |
@Override |
public void onSavePageDone( |
int savePageResult, String url, long offlineId) { |
- assertEquals( |
+ Assert.assertEquals( |
"Requested and returned URLs differ.", expectedUrl, url); |
- assertEquals( |
+ Assert.assertEquals( |
"Save result incorrect.", expectedResult, savePageResult); |
semaphore.release(); |
} |
}); |
} |
}); |
- assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
+ Assert.assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
} |
private void deletePage(final ClientId bookmarkId, final int expectedResult) |
@@ -309,8 +330,8 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
}); |
} |
}); |
- assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
- assertEquals("Delete result incorrect.", expectedResult, deletePageResultRef.get()); |
+ Assert.assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
+ Assert.assertEquals("Delete result incorrect.", expectedResult, deletePageResultRef.get()); |
} |
private List<OfflinePageItem> getAllPages() throws InterruptedException { |
@@ -328,7 +349,7 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
}); |
} |
}); |
- assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
+ Assert.assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
return result; |
} |
@@ -362,7 +383,7 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
}); |
} |
}); |
- assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
+ Assert.assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
return result[0]; |
} |
@@ -382,7 +403,7 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
}); |
} |
}); |
- assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
+ Assert.assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
return result; |
} |
@@ -411,7 +432,7 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
}); |
} |
}); |
- assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
+ Assert.assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
return ref.get(); |
} |
@@ -434,7 +455,7 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
}); |
} |
}); |
- assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
+ Assert.assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
return ref.get(); |
} |
} |