| 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..f55fb770e89605d03099c9e371433e08a9e75f6d 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,32 @@ 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<SavePageRequest> requestsToRemove = new ArrayList<>();
|
| + requestsToRemove.add(requests[1]);
|
| +
|
| + SavePageRequest[] removed = removeRequestsFromQueue(requestsToRemove);
|
| + assertEquals(requests[1].getRequestId(), removed[0].getRequestId());
|
| +
|
| + 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 +429,25 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi
|
| assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS));
|
| return ref.get();
|
| }
|
| +
|
| + private SavePageRequest[] removeRequestsFromQueue(final List<SavePageRequest> requestsToRemove)
|
| + throws InterruptedException {
|
| + final AtomicReference<SavePageRequest[]> ref = new AtomicReference<>();
|
| + final Semaphore semaphore = new Semaphore(0);
|
| + ThreadUtils.runOnUiThread(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + mOfflinePageBridge.removeRequestsFromQueue(
|
| + requestsToRemove, new Callback<SavePageRequest[]>() {
|
| + @Override
|
| + public void onResult(SavePageRequest[] removedRequests) {
|
| + ref.set(removedRequests);
|
| + semaphore.release();
|
| + }
|
| + });
|
| + }
|
| + });
|
| + assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS));
|
| + return ref.get();
|
| + }
|
| }
|
|
|