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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeTest.java

Issue 1739503002: Makes the OfflinePageBridge.getAllPages method asynchronous. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Wait for model load in new async method. Created 4 years, 9 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
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 11f89459112158421f8e32bf9768dc369e9362e3..18215066d002883cd1ae4ea06f87fb5964e60854 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
@@ -13,6 +13,7 @@ import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.ChromeSwitches;
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.DeletePageCallback;
+import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.MultipleOfflinePageItemCallback;
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.OfflinePageModelObserver;
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.SavePageCallback;
import org.chromium.chrome.browser.profiles.Profile;
@@ -28,6 +29,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Semaphore;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
/** Unit tests for {@link OfflinePageBridge}. */
@@ -298,33 +300,39 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi
private void deletePage(final ClientId bookmarkId, final int expectedResult)
throws InterruptedException {
final Semaphore semaphore = new Semaphore(0);
+ final AtomicInteger deletePageResultRef = new AtomicInteger();
ThreadUtils.runOnUiThreadBlocking(new Runnable() {
@Override
public void run() {
mOfflinePageBridge.deletePage(bookmarkId, new DeletePageCallback() {
@Override
public void onDeletePageDone(int deletePageResult) {
- assertEquals("Delete result incorrect.", expectedResult, deletePageResult);
+ deletePageResultRef.set(deletePageResult);
semaphore.release();
}
});
}
});
assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+ assertEquals("Delete result incorrect.", expectedResult, deletePageResultRef.get());
}
- private List<OfflinePageItem> getAllPages()
- throws InterruptedException {
+ private List<OfflinePageItem> getAllPages() throws InterruptedException {
+ final Semaphore semaphore = new Semaphore(0);
final List<OfflinePageItem> result = new ArrayList<OfflinePageItem>();
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ ThreadUtils.runOnUiThread(new Runnable() {
@Override
public void run() {
- result.clear();
- for (OfflinePageItem item : mOfflinePageBridge.getAllPages()) {
- result.add(item);
- }
+ mOfflinePageBridge.getAllPages(new MultipleOfflinePageItemCallback() {
+ @Override
+ public void onGetItems(List<OfflinePageItem> allPages) {
+ result.addAll(allPages);
+ semaphore.release();
+ }
+ });
}
});
+ assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS));
return result;
}

Powered by Google App Engine
This is Rietveld 408576698