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.download; | 5 package org.chromium.chrome.browser.download; |
6 | 6 |
7 import android.app.DownloadManager; | 7 import android.app.DownloadManager; |
8 import android.content.Context; | 8 import android.content.Context; |
9 import android.os.Handler; | 9 import android.os.Handler; |
10 import android.os.HandlerThread; | 10 import android.os.HandlerThread; |
(...skipping 14 matching lines...) Expand all Loading... |
25 import org.chromium.base.ThreadUtils; | 25 import org.chromium.base.ThreadUtils; |
26 import org.chromium.base.metrics.RecordHistogram; | 26 import org.chromium.base.metrics.RecordHistogram; |
27 import org.chromium.base.test.BaseJUnit4ClassRunner; | 27 import org.chromium.base.test.BaseJUnit4ClassRunner; |
28 import org.chromium.base.test.util.AdvancedMockContext; | 28 import org.chromium.base.test.util.AdvancedMockContext; |
29 import org.chromium.base.test.util.Feature; | 29 import org.chromium.base.test.util.Feature; |
30 import org.chromium.base.test.util.RetryOnFailure; | 30 import org.chromium.base.test.util.RetryOnFailure; |
31 import org.chromium.base.test.util.UrlUtils; | 31 import org.chromium.base.test.util.UrlUtils; |
32 import org.chromium.chrome.browser.download.DownloadInfo.Builder; | 32 import org.chromium.chrome.browser.download.DownloadInfo.Builder; |
33 import org.chromium.chrome.browser.download.DownloadManagerServiceTest.MockDownl
oadNotifier.MethodID; | 33 import org.chromium.chrome.browser.download.DownloadManagerServiceTest.MockDownl
oadNotifier.MethodID; |
34 import org.chromium.components.offline_items_collection.ContentId; | 34 import org.chromium.components.offline_items_collection.ContentId; |
| 35 import org.chromium.components.offline_items_collection.OfflineItem.Progress; |
| 36 import org.chromium.components.offline_items_collection.OfflineItemProgressUnit; |
35 import org.chromium.content.browser.test.NativeLibraryTestRule; | 37 import org.chromium.content.browser.test.NativeLibraryTestRule; |
36 import org.chromium.content.browser.test.util.Criteria; | 38 import org.chromium.content.browser.test.util.Criteria; |
37 import org.chromium.content.browser.test.util.CriteriaHelper; | 39 import org.chromium.content.browser.test.util.CriteriaHelper; |
38 import org.chromium.net.ConnectionType; | 40 import org.chromium.net.ConnectionType; |
39 import org.chromium.net.test.EmbeddedTestServer; | 41 import org.chromium.net.test.EmbeddedTestServer; |
40 | 42 |
41 import java.util.Collections; | 43 import java.util.Collections; |
42 import java.util.HashSet; | 44 import java.util.HashSet; |
43 import java.util.Queue; | 45 import java.util.Queue; |
44 import java.util.Random; | 46 import java.util.Random; |
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
368 MockDownloadNotifier notifier = new MockDownloadNotifier(getTestContext(
)); | 370 MockDownloadNotifier notifier = new MockDownloadNotifier(getTestContext(
)); |
369 DownloadManagerServiceForTest dService = new DownloadManagerServiceForTe
st( | 371 DownloadManagerServiceForTest dService = new DownloadManagerServiceForTe
st( |
370 getTestContext(), notifier, UPDATE_DELAY_FOR_TEST); | 372 getTestContext(), notifier, UPDATE_DELAY_FOR_TEST); |
371 DownloadInfo downloadInfo = getDownloadInfo(); | 373 DownloadInfo downloadInfo = getDownloadInfo(); |
372 | 374 |
373 notifier.expect(MethodID.DOWNLOAD_PROGRESS, downloadInfo); | 375 notifier.expect(MethodID.DOWNLOAD_PROGRESS, downloadInfo); |
374 dService.onDownloadUpdated(downloadInfo); | 376 dService.onDownloadUpdated(downloadInfo); |
375 notifier.waitTillExpectedCallsComplete(); | 377 notifier.waitTillExpectedCallsComplete(); |
376 | 378 |
377 // Now post multiple download updated calls and make sure all are receiv
ed. | 379 // Now post multiple download updated calls and make sure all are receiv
ed. |
378 DownloadInfo update1 = Builder.fromDownloadInfo(downloadInfo) | 380 DownloadInfo update1 = |
379 .setPercentCompleted(10).build(); | 381 Builder.fromDownloadInfo(downloadInfo) |
380 DownloadInfo update2 = Builder.fromDownloadInfo(downloadInfo) | 382 .setProgress(new Progress(10, 100L, OfflineItemProgressU
nit.PERCENTAGE)) |
381 .setPercentCompleted(30).build(); | 383 .build(); |
382 DownloadInfo update3 = Builder.fromDownloadInfo(downloadInfo) | 384 DownloadInfo update2 = |
383 .setPercentCompleted(30).build(); | 385 Builder.fromDownloadInfo(downloadInfo) |
| 386 .setProgress(new Progress(30, 100L, OfflineItemProgressU
nit.PERCENTAGE)) |
| 387 .build(); |
| 388 DownloadInfo update3 = |
| 389 Builder.fromDownloadInfo(downloadInfo) |
| 390 .setProgress(new Progress(30, 100L, OfflineItemProgressU
nit.PERCENTAGE)) |
| 391 .build(); |
384 notifier.expect(MethodID.DOWNLOAD_PROGRESS, update1) | 392 notifier.expect(MethodID.DOWNLOAD_PROGRESS, update1) |
385 .andThen(MethodID.DOWNLOAD_PROGRESS, update2) | 393 .andThen(MethodID.DOWNLOAD_PROGRESS, update2) |
386 .andThen(MethodID.DOWNLOAD_PROGRESS, update3); | 394 .andThen(MethodID.DOWNLOAD_PROGRESS, update3); |
387 | 395 |
388 dService.onDownloadUpdated(update1); | 396 dService.onDownloadUpdated(update1); |
389 Thread.sleep(DELAY_BETWEEN_CALLS); | 397 Thread.sleep(DELAY_BETWEEN_CALLS); |
390 dService.onDownloadUpdated(update2); | 398 dService.onDownloadUpdated(update2); |
391 Thread.sleep(DELAY_BETWEEN_CALLS); | 399 Thread.sleep(DELAY_BETWEEN_CALLS); |
392 dService.onDownloadUpdated(update3); | 400 dService.onDownloadUpdated(update3); |
393 notifier.waitTillExpectedCallsComplete(); | 401 notifier.waitTillExpectedCallsComplete(); |
394 } | 402 } |
395 | 403 |
396 @Test | 404 @Test |
397 @MediumTest | 405 @MediumTest |
398 @Feature({"Download"}) | 406 @Feature({"Download"}) |
399 public void testOnlyTwoProgressForFastUpdates() throws InterruptedException
{ | 407 public void testOnlyTwoProgressForFastUpdates() throws InterruptedException
{ |
400 MockDownloadNotifier notifier = new MockDownloadNotifier(getTestContext(
)); | 408 MockDownloadNotifier notifier = new MockDownloadNotifier(getTestContext(
)); |
401 DownloadManagerServiceForTest dService = new DownloadManagerServiceForTe
st( | 409 DownloadManagerServiceForTest dService = new DownloadManagerServiceForTe
st( |
402 getTestContext(), notifier, LONG_UPDATE_DELAY_FOR_TEST); | 410 getTestContext(), notifier, LONG_UPDATE_DELAY_FOR_TEST); |
403 DownloadInfo downloadInfo = getDownloadInfo(); | 411 DownloadInfo downloadInfo = getDownloadInfo(); |
404 DownloadInfo update1 = Builder.fromDownloadInfo(downloadInfo) | 412 DownloadInfo update1 = |
405 .setPercentCompleted(10).build(); | 413 Builder.fromDownloadInfo(downloadInfo) |
406 DownloadInfo update2 = Builder.fromDownloadInfo(downloadInfo) | 414 .setProgress(new Progress(10, 100L, OfflineItemProgressU
nit.PERCENTAGE)) |
407 .setPercentCompleted(20).build(); | 415 .build(); |
408 DownloadInfo update3 = Builder.fromDownloadInfo(downloadInfo) | 416 DownloadInfo update2 = |
409 .setPercentCompleted(30).build(); | 417 Builder.fromDownloadInfo(downloadInfo) |
| 418 .setProgress(new Progress(10, 100L, OfflineItemProgressU
nit.PERCENTAGE)) |
| 419 .build(); |
| 420 DownloadInfo update3 = |
| 421 Builder.fromDownloadInfo(downloadInfo) |
| 422 .setProgress(new Progress(10, 100L, OfflineItemProgressU
nit.PERCENTAGE)) |
| 423 .build(); |
410 | 424 |
411 // Should get 2 update calls, the first and the last. The 2nd update wil
l be merged into | 425 // Should get 2 update calls, the first and the last. The 2nd update wil
l be merged into |
412 // the last one. | 426 // the last one. |
413 notifier.expect(MethodID.DOWNLOAD_PROGRESS, update1) | 427 notifier.expect(MethodID.DOWNLOAD_PROGRESS, update1) |
414 .andThen(MethodID.DOWNLOAD_PROGRESS, update3); | 428 .andThen(MethodID.DOWNLOAD_PROGRESS, update3); |
415 dService.onDownloadUpdated(update1); | 429 dService.onDownloadUpdated(update1); |
416 Thread.sleep(DELAY_BETWEEN_CALLS); | 430 Thread.sleep(DELAY_BETWEEN_CALLS); |
417 dService.onDownloadUpdated(update2); | 431 dService.onDownloadUpdated(update2); |
418 Thread.sleep(DELAY_BETWEEN_CALLS); | 432 Thread.sleep(DELAY_BETWEEN_CALLS); |
419 dService.onDownloadUpdated(update3); | 433 dService.onDownloadUpdated(update3); |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
688 .setHasUserGesture(false) | 702 .setHasUserGesture(false) |
689 .build())); | 703 .build())); |
690 Assert.assertFalse(DownloadManagerService.shouldOpenAfterDownload( | 704 Assert.assertFalse(DownloadManagerService.shouldOpenAfterDownload( |
691 new DownloadInfo.Builder() | 705 new DownloadInfo.Builder() |
692 .setContentDisposition("filename=test.pdf") | 706 .setContentDisposition("filename=test.pdf") |
693 .setMimeType("application/pdf") | 707 .setMimeType("application/pdf") |
694 .setHasUserGesture(false) | 708 .setHasUserGesture(false) |
695 .build())); | 709 .build())); |
696 } | 710 } |
697 } | 711 } |
OLD | NEW |