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.content.Intent; | 9 import android.content.Intent; |
10 import android.os.Environment; | 10 import android.os.Environment; |
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
324 .setDownloadGuid(UUID.randomUUID().toString()) | 324 .setDownloadGuid(UUID.randomUUID().toString()) |
325 .build(); | 325 .build(); |
326 } | 326 } |
327 | 327 |
328 private Context getTestContext() { | 328 private Context getTestContext() { |
329 return new AdvancedMockContext(getInstrumentation().getTargetContext()); | 329 return new AdvancedMockContext(getInstrumentation().getTargetContext()); |
330 } | 330 } |
331 | 331 |
332 @MediumTest | 332 @MediumTest |
333 @Feature({"Download"}) | 333 @Feature({"Download"}) |
334 public void testDownloadProgressIsCalled() throws InterruptedException { | 334 public void testAllDownloadProgressIsCalledForSlowUpdates() throws Interrupt
edException { |
335 MockDownloadNotifier notifier = new MockDownloadNotifier(getTestContext(
)); | 335 MockDownloadNotifier notifier = new MockDownloadNotifier(getTestContext(
)); |
336 DownloadManagerServiceForTest dService = new DownloadManagerServiceForTe
st( | 336 DownloadManagerServiceForTest dService = new DownloadManagerServiceForTe
st( |
337 getTestContext(), notifier, UPDATE_DELAY_FOR_TEST); | 337 getTestContext(), notifier, UPDATE_DELAY_FOR_TEST); |
338 DownloadInfo downloadInfo = getDownloadInfo(); | 338 DownloadInfo downloadInfo = getDownloadInfo(); |
339 | 339 |
340 notifier.expect(MethodID.DOWNLOAD_PROGRESS, downloadInfo); | 340 notifier.expect(MethodID.DOWNLOAD_PROGRESS, downloadInfo); |
341 dService.onDownloadUpdated(downloadInfo); | 341 dService.onDownloadUpdated(downloadInfo); |
342 notifier.waitTillExpectedCallsComplete(); | 342 notifier.waitTillExpectedCallsComplete(); |
343 | 343 |
344 // Now post multiple download updated calls and make sure all are receiv
ed. | 344 // Now post multiple download updated calls and make sure all are receiv
ed. |
(...skipping 10 matching lines...) Expand all Loading... |
355 dService.onDownloadUpdated(update1); | 355 dService.onDownloadUpdated(update1); |
356 Thread.sleep(DELAY_BETWEEN_CALLS); | 356 Thread.sleep(DELAY_BETWEEN_CALLS); |
357 dService.onDownloadUpdated(update2); | 357 dService.onDownloadUpdated(update2); |
358 Thread.sleep(DELAY_BETWEEN_CALLS); | 358 Thread.sleep(DELAY_BETWEEN_CALLS); |
359 dService.onDownloadUpdated(update3); | 359 dService.onDownloadUpdated(update3); |
360 notifier.waitTillExpectedCallsComplete(); | 360 notifier.waitTillExpectedCallsComplete(); |
361 } | 361 } |
362 | 362 |
363 @MediumTest | 363 @MediumTest |
364 @Feature({"Download"}) | 364 @Feature({"Download"}) |
365 public void testOnlyOneProgressForFastUpdates() throws InterruptedException
{ | 365 public void testOnlyTwoProgressForFastUpdates() throws InterruptedException
{ |
366 MockDownloadNotifier notifier = new MockDownloadNotifier(getTestContext(
)); | 366 MockDownloadNotifier notifier = new MockDownloadNotifier(getTestContext(
)); |
367 DownloadManagerServiceForTest dService = new DownloadManagerServiceForTe
st( | 367 DownloadManagerServiceForTest dService = new DownloadManagerServiceForTe
st( |
368 getTestContext(), notifier, LONG_UPDATE_DELAY_FOR_TEST); | 368 getTestContext(), notifier, LONG_UPDATE_DELAY_FOR_TEST); |
369 DownloadInfo downloadInfo = getDownloadInfo(); | 369 DownloadInfo downloadInfo = getDownloadInfo(); |
370 DownloadInfo update1 = Builder.fromDownloadInfo(downloadInfo) | 370 DownloadInfo update1 = Builder.fromDownloadInfo(downloadInfo) |
371 .setPercentCompleted(10).build(); | 371 .setPercentCompleted(10).build(); |
372 DownloadInfo update2 = Builder.fromDownloadInfo(downloadInfo) | 372 DownloadInfo update2 = Builder.fromDownloadInfo(downloadInfo) |
373 .setPercentCompleted(30).build(); | 373 .setPercentCompleted(20).build(); |
374 DownloadInfo update3 = Builder.fromDownloadInfo(downloadInfo) | 374 DownloadInfo update3 = Builder.fromDownloadInfo(downloadInfo) |
375 .setPercentCompleted(30).build(); | 375 .setPercentCompleted(30).build(); |
376 | 376 |
377 // Should only get one update call, the last update. | 377 // Should get 2 update calls, the first and the last. The 2nd update wil
l be merged into |
378 notifier.expect(MethodID.DOWNLOAD_PROGRESS, update3); | 378 // the last one. |
| 379 notifier.expect(MethodID.DOWNLOAD_PROGRESS, update1) |
| 380 .andThen(MethodID.DOWNLOAD_PROGRESS, update3); |
379 dService.onDownloadUpdated(update1); | 381 dService.onDownloadUpdated(update1); |
380 Thread.sleep(DELAY_BETWEEN_CALLS); | 382 Thread.sleep(DELAY_BETWEEN_CALLS); |
381 dService.onDownloadUpdated(update2); | 383 dService.onDownloadUpdated(update2); |
382 Thread.sleep(DELAY_BETWEEN_CALLS); | 384 Thread.sleep(DELAY_BETWEEN_CALLS); |
383 dService.onDownloadUpdated(update3); | 385 dService.onDownloadUpdated(update3); |
384 Thread.sleep(DELAY_BETWEEN_CALLS); | 386 Thread.sleep(DELAY_BETWEEN_CALLS); |
385 notifier.waitTillExpectedCallsComplete(); | 387 notifier.waitTillExpectedCallsComplete(); |
386 } | 388 } |
387 | 389 |
388 @MediumTest | 390 @MediumTest |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
641 .setHasUserGesture(false) | 643 .setHasUserGesture(false) |
642 .build())); | 644 .build())); |
643 assertFalse( | 645 assertFalse( |
644 DownloadManagerService.shouldOpenAfterDownload(new DownloadInfo.
Builder() | 646 DownloadManagerService.shouldOpenAfterDownload(new DownloadInfo.
Builder() |
645 .setContentDisposition("filename=test.pdf") | 647 .setContentDisposition("filename=test.pdf") |
646 .setMimeType("application/pdf") | 648 .setMimeType("application/pdf") |
647 .setHasUserGesture(false) | 649 .setHasUserGesture(false) |
648 .build())); | 650 .build())); |
649 } | 651 } |
650 } | 652 } |
OLD | NEW |