| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.offlinepages; | 5 package org.chromium.chrome.browser.offlinepages; |
| 6 | 6 |
| 7 import android.content.Context; | 7 import android.content.Context; |
| 8 import android.os.Environment; | 8 import android.os.Environment; |
| 9 import android.test.suitebuilder.annotation.SmallTest; | 9 import android.test.suitebuilder.annotation.SmallTest; |
| 10 | 10 |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 expectedUrls.remove(request.getUrl()); | 246 expectedUrls.remove(request.getUrl()); |
| 247 } | 247 } |
| 248 } | 248 } |
| 249 | 249 |
| 250 @SmallTest | 250 @SmallTest |
| 251 public void testOfflinePageBridgeDisabledInIncognito() throws Exception { | 251 public void testOfflinePageBridgeDisabledInIncognito() throws Exception { |
| 252 initializeBridgeForProfile(true); | 252 initializeBridgeForProfile(true); |
| 253 assertEquals(null, mOfflinePageBridge); | 253 assertEquals(null, mOfflinePageBridge); |
| 254 } | 254 } |
| 255 | 255 |
| 256 @SmallTest |
| 257 public void testRemoveRequestsFromQueue() throws Exception { |
| 258 String url = "https://www.google.com/"; |
| 259 String namespace = "custom_tabs"; |
| 260 savePageLater(url, namespace); |
| 261 |
| 262 String url2 = "https://mail.google.com/"; |
| 263 String namespace2 = "last_n"; |
| 264 savePageLater(url2, namespace2); |
| 265 |
| 266 SavePageRequest[] requests = getRequestsInQueue(); |
| 267 assertEquals(2, requests.length); |
| 268 |
| 269 List<SavePageRequest> requestsToRemove = new ArrayList<>(); |
| 270 requestsToRemove.add(requests[1]); |
| 271 |
| 272 SavePageRequest[] removed = clearRequestsFromQueue(requestsToRemove); |
| 273 assertEquals(requests[1].getRequestId(), removed[0].getRequestId()); |
| 274 |
| 275 SavePageRequest[] remaining = getRequestsInQueue(); |
| 276 assertEquals(1, remaining.length); |
| 277 |
| 278 assertEquals(requests[0].getRequestId(), remaining[0].getRequestId()); |
| 279 assertEquals(requests[0].getUrl(), remaining[0].getUrl()); |
| 280 } |
| 281 |
| 256 private void savePage(final int expectedResult, final String expectedUrl) | 282 private void savePage(final int expectedResult, final String expectedUrl) |
| 257 throws InterruptedException { | 283 throws InterruptedException { |
| 258 final Semaphore semaphore = new Semaphore(0); | 284 final Semaphore semaphore = new Semaphore(0); |
| 259 ThreadUtils.runOnUiThreadBlocking(new Runnable() { | 285 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
| 260 @Override | 286 @Override |
| 261 public void run() { | 287 public void run() { |
| 262 assertNotNull("Tab is null", getActivity().getActivityTab()); | 288 assertNotNull("Tab is null", getActivity().getActivityTab()); |
| 263 assertEquals("URL does not match requested.", expectedUrl, | 289 assertEquals("URL does not match requested.", expectedUrl, |
| 264 getActivity().getActivityTab().getUrl()); | 290 getActivity().getActivityTab().getUrl()); |
| 265 assertNotNull("WebContents is null", | 291 assertNotNull("WebContents is null", |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 396 public void onResult(SavePageRequest[] requestsInQueue) { | 422 public void onResult(SavePageRequest[] requestsInQueue) { |
| 397 ref.set(requestsInQueue); | 423 ref.set(requestsInQueue); |
| 398 semaphore.release(); | 424 semaphore.release(); |
| 399 } | 425 } |
| 400 }); | 426 }); |
| 401 } | 427 } |
| 402 }); | 428 }); |
| 403 assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); | 429 assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
| 404 return ref.get(); | 430 return ref.get(); |
| 405 } | 431 } |
| 432 |
| 433 private SavePageRequest[] clearRequestsFromQueue(final List<SavePageRequest>
requestsToRemove) |
| 434 throws InterruptedException { |
| 435 final AtomicReference<SavePageRequest[]> ref = new AtomicReference<>(); |
| 436 final Semaphore semaphore = new Semaphore(0); |
| 437 ThreadUtils.runOnUiThread(new Runnable() { |
| 438 @Override |
| 439 public void run() { |
| 440 mOfflinePageBridge.clearRequestsFromQueue( |
| 441 requestsToRemove, new Callback<SavePageRequest[]>() { |
| 442 @Override |
| 443 public void onResult(SavePageRequest[] removedReques
ts) { |
| 444 ref.set(removedRequests); |
| 445 semaphore.release(); |
| 446 } |
| 447 }); |
| 448 } |
| 449 }); |
| 450 assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); |
| 451 return ref.get(); |
| 452 } |
| 406 } | 453 } |
| OLD | NEW |