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

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: Created 4 years, 10 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 46a3b945889c8ff662fd3b44dbab24a43914e6ea..392da05cee627b4fdc891f169a93c0d9a0385440 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.GetAllPagesCallback;
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.OfflinePageModelObserver;
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.SavePageCallback;
import org.chromium.chrome.browser.profiles.Profile;
@@ -30,6 +31,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}. */
@@ -293,33 +295,39 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi
private void deletePage(BookmarkId 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(BOOKMARK_ID, 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 GetAllPagesCallback() {
+ @Override
+ public void onGetAllPagesDone(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