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 c0a6eba8b111c23f3d54eab1f2a0c2229da96917..15ad6274d0a898c21691f7326e1605de3d6b252e 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 |
@@ -253,6 +253,35 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
assertEquals(null, mOfflinePageBridge); |
} |
+ @SmallTest |
+ public void testRemoveRequestsFromQueue() throws Exception { |
+ String url = "https://www.google.com/"; |
+ String namespace = "custom_tabs"; |
+ savePageLater(url, namespace); |
+ |
+ String url2 = "https://mail.google.com/"; |
+ String namespace2 = "last_n"; |
+ savePageLater(url2, namespace2); |
+ |
+ SavePageRequest[] requests = getRequestsInQueue(); |
+ 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, |
+ removed.get(0).getUpdateRequestResult()); |
+ |
+ SavePageRequest[] remaining = getRequestsInQueue(); |
+ assertEquals(1, remaining.length); |
+ |
+ assertEquals(requests[0].getRequestId(), remaining[0].getRequestId()); |
+ assertEquals(requests[0].getUrl(), remaining[0].getUrl()); |
+ } |
+ |
private void savePage(final int expectedResult, final String expectedUrl) |
throws InterruptedException { |
final Semaphore semaphore = new Semaphore(0); |
@@ -403,4 +432,27 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi |
assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
return ref.get(); |
} |
+ |
+ private List<OfflinePageBridge.RequestRemovedResult> removeRequestsFromQueue( |
+ final List<Long> requestsToRemove) throws InterruptedException { |
+ final AtomicReference<List<OfflinePageBridge.RequestRemovedResult>> ref = |
+ new AtomicReference<>(); |
+ final Semaphore semaphore = new Semaphore(0); |
+ ThreadUtils.runOnUiThread(new Runnable() { |
+ @Override |
+ public void run() { |
+ mOfflinePageBridge.removeRequestsFromQueue(requestsToRemove, |
+ new Callback<List<OfflinePageBridge.RequestRemovedResult>>() { |
+ @Override |
+ public void onResult( |
+ List<OfflinePageBridge.RequestRemovedResult> removedRequests) { |
+ ref.set(removedRequests); |
+ semaphore.release(); |
+ } |
+ }); |
+ } |
+ }); |
+ assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
+ return ref.get(); |
+ } |
} |