OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #include <string> | 5 #include <string> |
6 #include <set> | 6 #include <set> |
7 | 7 |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
| 9 #include "base/i18n/number_formatting.h" |
| 10 #include "base/i18n/rtl.h" |
9 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
10 #include "base/stl_util-inl.h" | 12 #include "base/stl_util-inl.h" |
11 #include "base/string_util.h" | 13 #include "base/string_util.h" |
| 14 #include "base/string16.h" |
| 15 #include "base/utf_string_conversions.h" |
12 #include "build/build_config.h" | 16 #include "build/build_config.h" |
13 #include "chrome/browser/download/download_file.h" | 17 #include "chrome/browser/download/download_file.h" |
14 #include "chrome/browser/download/download_file_manager.h" | 18 #include "chrome/browser/download/download_file_manager.h" |
15 #include "chrome/browser/download/download_item.h" | 19 #include "chrome/browser/download/download_item.h" |
| 20 #include "chrome/browser/download/download_item_model.h" |
16 #include "chrome/browser/download/download_manager.h" | 21 #include "chrome/browser/download/download_manager.h" |
17 #include "chrome/browser/download/download_prefs.h" | 22 #include "chrome/browser/download/download_prefs.h" |
18 #include "chrome/browser/download/download_status_updater.h" | 23 #include "chrome/browser/download/download_status_updater.h" |
19 #include "chrome/browser/download/download_util.h" | 24 #include "chrome/browser/download/download_util.h" |
20 #include "chrome/browser/download/mock_download_manager.h" | 25 #include "chrome/browser/download/mock_download_manager.h" |
21 #include "chrome/browser/history/download_create_info.h" | 26 #include "chrome/browser/history/download_create_info.h" |
22 #include "chrome/browser/prefs/pref_service.h" | 27 #include "chrome/browser/prefs/pref_service.h" |
23 #include "chrome/common/pref_names.h" | 28 #include "chrome/common/pref_names.h" |
24 #include "chrome/test/testing_profile.h" | 29 #include "chrome/test/testing_profile.h" |
25 #include "content/browser/browser_thread.h" | 30 #include "content/browser/browser_thread.h" |
| 31 #include "grit/generated_resources.h" |
26 #include "testing/gmock/include/gmock/gmock.h" | 32 #include "testing/gmock/include/gmock/gmock.h" |
27 #include "testing/gmock_mutant.h" | 33 #include "testing/gmock_mutant.h" |
28 #include "testing/gtest/include/gtest/gtest.h" | 34 #include "testing/gtest/include/gtest/gtest.h" |
| 35 #include "ui/base/l10n/l10n_util.h" |
29 | 36 |
30 class DownloadManagerTest : public testing::Test { | 37 class DownloadManagerTest : public testing::Test { |
31 public: | 38 public: |
32 static const char* kTestData; | 39 static const char* kTestData; |
33 static const size_t kTestDataLen; | 40 static const size_t kTestDataLen; |
34 | 41 |
35 DownloadManagerTest() | 42 DownloadManagerTest() |
36 : profile_(new TestingProfile()), | 43 : profile_(new TestingProfile()), |
37 download_manager_(new MockDownloadManager(&download_status_updater_)), | 44 download_manager_(new MockDownloadManager(&download_status_updater_)), |
38 ui_thread_(BrowserThread::UI, &message_loop_), | 45 ui_thread_(BrowserThread::UI, &message_loop_), |
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 using ::testing::Invoke; | 402 using ::testing::Invoke; |
396 using ::testing::Return; | 403 using ::testing::Return; |
397 | 404 |
398 // |info| will be destroyed in download_manager_. | 405 // |info| will be destroyed in download_manager_. |
399 DownloadCreateInfo* info(new DownloadCreateInfo); | 406 DownloadCreateInfo* info(new DownloadCreateInfo); |
400 info->download_id = static_cast<int>(0); | 407 info->download_id = static_cast<int>(0); |
401 info->prompt_user_for_save_location = false; | 408 info->prompt_user_for_save_location = false; |
402 info->url_chain.push_back(GURL()); | 409 info->url_chain.push_back(GURL()); |
403 info->is_dangerous_file = false; | 410 info->is_dangerous_file = false; |
404 info->is_dangerous_url = false; | 411 info->is_dangerous_url = false; |
| 412 info->total_bytes = static_cast<int64>(kTestDataLen); |
405 const FilePath new_path(FILE_PATH_LITERAL("foo.zip")); | 413 const FilePath new_path(FILE_PATH_LITERAL("foo.zip")); |
406 const FilePath cr_path(download_util::GetCrDownloadPath(new_path)); | 414 const FilePath cr_path(download_util::GetCrDownloadPath(new_path)); |
407 | 415 |
408 MockDownloadFile* download_file( | 416 MockDownloadFile* download_file( |
409 new MockDownloadFile(info, download_manager_)); | 417 new MockDownloadFile(info, download_manager_)); |
410 AddDownloadToFileManager(info->download_id, download_file); | 418 AddDownloadToFileManager(info->download_id, download_file); |
411 | 419 |
412 // |download_file| is owned by DownloadFileManager. | 420 // |download_file| is owned by DownloadFileManager. |
413 ::testing::Mock::AllowLeak(download_file); | 421 ::testing::Mock::AllowLeak(download_file); |
414 EXPECT_CALL(*download_file, Destructed()).Times(1); | 422 EXPECT_CALL(*download_file, Destructed()).Times(1); |
415 | 423 |
416 EXPECT_CALL(*download_file, Rename(cr_path)).WillOnce(Return(true)); | 424 EXPECT_CALL(*download_file, Rename(cr_path)).WillOnce(Return(true)); |
417 | 425 |
418 download_manager_->CreateDownloadItem(info); | 426 download_manager_->CreateDownloadItem(info); |
419 | 427 |
420 DownloadItem* download = GetActiveDownloadItem(0); | 428 DownloadItem* download = GetActiveDownloadItem(0); |
421 ASSERT_TRUE(download != NULL); | 429 ASSERT_TRUE(download != NULL); |
| 430 scoped_ptr<DownloadItemModel> download_item_model( |
| 431 new DownloadItemModel(download)); |
422 | 432 |
423 EXPECT_EQ(DownloadItem::IN_PROGRESS, download->state()); | 433 EXPECT_EQ(DownloadItem::IN_PROGRESS, download->state()); |
424 scoped_ptr<ItemObserver> observer(new ItemObserver(download)); | 434 scoped_ptr<ItemObserver> observer(new ItemObserver(download)); |
425 | 435 |
426 download_file->AppendDataToFile(kTestData, kTestDataLen); | 436 download_file->AppendDataToFile(kTestData, kTestDataLen); |
427 | 437 |
428 info->path = new_path; | 438 info->path = new_path; |
429 AttachDownloadItem(info); | 439 AttachDownloadItem(info); |
430 message_loop_.RunAllPending(); | 440 message_loop_.RunAllPending(); |
431 EXPECT_TRUE(GetActiveDownloadItem(0) != NULL); | 441 EXPECT_TRUE(GetActiveDownloadItem(0) != NULL); |
432 | 442 |
433 OnDownloadError(0, 1024, -6); | 443 int64 error_size = 3; |
| 444 OnDownloadError(0, error_size, -6); |
434 message_loop_.RunAllPending(); | 445 message_loop_.RunAllPending(); |
435 | 446 |
436 EXPECT_TRUE(GetActiveDownloadItem(0) == NULL); | 447 EXPECT_TRUE(GetActiveDownloadItem(0) == NULL); |
437 EXPECT_EQ(DownloadItem::INTERRUPTED, download->state()); | |
438 EXPECT_TRUE(observer->hit_state(DownloadItem::IN_PROGRESS)); | 448 EXPECT_TRUE(observer->hit_state(DownloadItem::IN_PROGRESS)); |
439 EXPECT_TRUE(observer->hit_state(DownloadItem::INTERRUPTED)); | 449 EXPECT_TRUE(observer->hit_state(DownloadItem::INTERRUPTED)); |
440 EXPECT_FALSE(observer->hit_state(DownloadItem::COMPLETE)); | 450 EXPECT_FALSE(observer->hit_state(DownloadItem::COMPLETE)); |
441 EXPECT_FALSE(observer->hit_state(DownloadItem::CANCELLED)); | 451 EXPECT_FALSE(observer->hit_state(DownloadItem::CANCELLED)); |
442 EXPECT_FALSE(observer->hit_state(DownloadItem::REMOVING)); | 452 EXPECT_FALSE(observer->hit_state(DownloadItem::REMOVING)); |
443 EXPECT_TRUE(observer->was_updated()); | 453 EXPECT_TRUE(observer->was_updated()); |
444 EXPECT_FALSE(observer->was_opened()); | 454 EXPECT_FALSE(observer->was_opened()); |
| 455 EXPECT_FALSE(download->file_externally_removed()); |
| 456 EXPECT_EQ(DownloadItem::INTERRUPTED, download->state()); |
| 457 DataUnits amount_units = GetByteDisplayUnits(kTestDataLen); |
| 458 const string16 simple_size = FormatBytes(error_size, amount_units, false); |
| 459 string16 simple_total = base::i18n::GetDisplayStringInLTRDirectionality( |
| 460 FormatBytes(kTestDataLen, amount_units, true)); |
| 461 EXPECT_EQ(download_item_model->GetStatusText(), |
| 462 l10n_util::GetStringFUTF16(IDS_DOWNLOAD_STATUS_INTERRUPTED, |
| 463 simple_size, |
| 464 simple_total)); |
445 | 465 |
446 download->Cancel(true); | 466 download->Cancel(true); |
447 | 467 |
448 EXPECT_EQ(DownloadItem::INTERRUPTED, download->state()); | |
449 EXPECT_TRUE(observer->hit_state(DownloadItem::IN_PROGRESS)); | 468 EXPECT_TRUE(observer->hit_state(DownloadItem::IN_PROGRESS)); |
450 EXPECT_TRUE(observer->hit_state(DownloadItem::INTERRUPTED)); | 469 EXPECT_TRUE(observer->hit_state(DownloadItem::INTERRUPTED)); |
451 EXPECT_FALSE(observer->hit_state(DownloadItem::COMPLETE)); | 470 EXPECT_FALSE(observer->hit_state(DownloadItem::COMPLETE)); |
452 EXPECT_FALSE(observer->hit_state(DownloadItem::CANCELLED)); | 471 EXPECT_FALSE(observer->hit_state(DownloadItem::CANCELLED)); |
453 EXPECT_FALSE(observer->hit_state(DownloadItem::REMOVING)); | 472 EXPECT_FALSE(observer->hit_state(DownloadItem::REMOVING)); |
454 EXPECT_TRUE(observer->was_updated()); | 473 EXPECT_TRUE(observer->was_updated()); |
455 EXPECT_FALSE(observer->was_opened()); | 474 EXPECT_FALSE(observer->was_opened()); |
| 475 EXPECT_FALSE(download->file_externally_removed()); |
| 476 EXPECT_EQ(DownloadItem::INTERRUPTED, download->state()); |
| 477 EXPECT_EQ(download->received_bytes(), error_size); |
| 478 EXPECT_EQ(download->total_bytes(), static_cast<int64>(kTestDataLen)); |
456 } | 479 } |
457 | 480 |
458 TEST_F(DownloadManagerTest, DownloadCancelTest) { | 481 TEST_F(DownloadManagerTest, DownloadCancelTest) { |
459 using ::testing::_; | 482 using ::testing::_; |
460 using ::testing::CreateFunctor; | 483 using ::testing::CreateFunctor; |
461 using ::testing::Invoke; | 484 using ::testing::Invoke; |
462 using ::testing::Return; | 485 using ::testing::Return; |
463 | 486 |
464 // |info| will be destroyed in download_manager_. | 487 // |info| will be destroyed in download_manager_. |
465 DownloadCreateInfo* info(new DownloadCreateInfo); | 488 DownloadCreateInfo* info(new DownloadCreateInfo); |
(...skipping 12 matching lines...) Expand all Loading... |
478 // |download_file| is owned by DownloadFileManager. | 501 // |download_file| is owned by DownloadFileManager. |
479 ::testing::Mock::AllowLeak(download_file); | 502 ::testing::Mock::AllowLeak(download_file); |
480 EXPECT_CALL(*download_file, Destructed()).Times(1); | 503 EXPECT_CALL(*download_file, Destructed()).Times(1); |
481 | 504 |
482 EXPECT_CALL(*download_file, Rename(cr_path)).WillOnce(Return(true)); | 505 EXPECT_CALL(*download_file, Rename(cr_path)).WillOnce(Return(true)); |
483 | 506 |
484 download_manager_->CreateDownloadItem(info); | 507 download_manager_->CreateDownloadItem(info); |
485 | 508 |
486 DownloadItem* download = GetActiveDownloadItem(0); | 509 DownloadItem* download = GetActiveDownloadItem(0); |
487 ASSERT_TRUE(download != NULL); | 510 ASSERT_TRUE(download != NULL); |
| 511 scoped_ptr<DownloadItemModel> download_item_model( |
| 512 new DownloadItemModel(download)); |
488 | 513 |
489 EXPECT_EQ(DownloadItem::IN_PROGRESS, download->state()); | 514 EXPECT_EQ(DownloadItem::IN_PROGRESS, download->state()); |
490 scoped_ptr<ItemObserver> observer(new ItemObserver(download)); | 515 scoped_ptr<ItemObserver> observer(new ItemObserver(download)); |
491 | 516 |
492 info->path = new_path; | 517 info->path = new_path; |
493 AttachDownloadItem(info); | 518 AttachDownloadItem(info); |
494 message_loop_.RunAllPending(); | 519 message_loop_.RunAllPending(); |
495 EXPECT_TRUE(GetActiveDownloadItem(0) != NULL); | 520 EXPECT_TRUE(GetActiveDownloadItem(0) != NULL); |
496 | 521 |
497 download_file->AppendDataToFile(kTestData, kTestDataLen); | 522 download_file->AppendDataToFile(kTestData, kTestDataLen); |
498 | 523 |
499 download->Cancel(false); | 524 download->Cancel(false); |
500 message_loop_.RunAllPending(); | 525 message_loop_.RunAllPending(); |
501 | 526 |
502 EXPECT_TRUE(GetActiveDownloadItem(0) != NULL); | 527 EXPECT_TRUE(GetActiveDownloadItem(0) != NULL); |
503 EXPECT_TRUE(observer->hit_state(DownloadItem::IN_PROGRESS)); | 528 EXPECT_TRUE(observer->hit_state(DownloadItem::IN_PROGRESS)); |
504 EXPECT_TRUE(observer->hit_state(DownloadItem::CANCELLED)); | 529 EXPECT_TRUE(observer->hit_state(DownloadItem::CANCELLED)); |
505 EXPECT_FALSE(observer->hit_state(DownloadItem::INTERRUPTED)); | 530 EXPECT_FALSE(observer->hit_state(DownloadItem::INTERRUPTED)); |
506 EXPECT_FALSE(observer->hit_state(DownloadItem::COMPLETE)); | 531 EXPECT_FALSE(observer->hit_state(DownloadItem::COMPLETE)); |
507 EXPECT_FALSE(observer->hit_state(DownloadItem::REMOVING)); | 532 EXPECT_FALSE(observer->hit_state(DownloadItem::REMOVING)); |
508 EXPECT_TRUE(observer->was_updated()); | 533 EXPECT_TRUE(observer->was_updated()); |
509 EXPECT_FALSE(observer->was_opened()); | 534 EXPECT_FALSE(observer->was_opened()); |
| 535 EXPECT_FALSE(download->file_externally_removed()); |
| 536 EXPECT_EQ(DownloadItem::CANCELLED, download->state()); |
| 537 EXPECT_EQ(download_item_model->GetStatusText(), |
| 538 l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_CANCELED)); |
510 | 539 |
511 EXPECT_FALSE(file_util::PathExists(new_path)); | 540 EXPECT_FALSE(file_util::PathExists(new_path)); |
512 EXPECT_FALSE(file_util::PathExists(cr_path)); | 541 EXPECT_FALSE(file_util::PathExists(cr_path)); |
513 } | 542 } |
514 | 543 |
515 TEST_F(DownloadManagerTest, DownloadOverwriteTest) { | 544 TEST_F(DownloadManagerTest, DownloadOverwriteTest) { |
516 using ::testing::_; | 545 using ::testing::_; |
517 using ::testing::CreateFunctor; | 546 using ::testing::CreateFunctor; |
518 using ::testing::Invoke; | 547 using ::testing::Invoke; |
519 using ::testing::Return; | 548 using ::testing::Return; |
(...skipping 25 matching lines...) Expand all Loading... |
545 info->download_id = static_cast<int>(0); | 574 info->download_id = static_cast<int>(0); |
546 info->prompt_user_for_save_location = true; | 575 info->prompt_user_for_save_location = true; |
547 info->url_chain.push_back(GURL()); | 576 info->url_chain.push_back(GURL()); |
548 info->is_dangerous_file = false; | 577 info->is_dangerous_file = false; |
549 info->is_dangerous_url = false; | 578 info->is_dangerous_url = false; |
550 | 579 |
551 download_manager_->CreateDownloadItem(info); | 580 download_manager_->CreateDownloadItem(info); |
552 | 581 |
553 DownloadItem* download = GetActiveDownloadItem(0); | 582 DownloadItem* download = GetActiveDownloadItem(0); |
554 ASSERT_TRUE(download != NULL); | 583 ASSERT_TRUE(download != NULL); |
| 584 scoped_ptr<DownloadItemModel> download_item_model( |
| 585 new DownloadItemModel(download)); |
555 | 586 |
556 EXPECT_EQ(DownloadItem::IN_PROGRESS, download->state()); | 587 EXPECT_EQ(DownloadItem::IN_PROGRESS, download->state()); |
557 scoped_ptr<ItemObserver> observer(new ItemObserver(download)); | 588 scoped_ptr<ItemObserver> observer(new ItemObserver(download)); |
558 | 589 |
559 // Create and initialize the download file. We're bypassing the first part | 590 // Create and initialize the download file. We're bypassing the first part |
560 // of the download process and skipping to the part after the final file | 591 // of the download process and skipping to the part after the final file |
561 // name has been chosen, so we need to initialize the download file | 592 // name has been chosen, so we need to initialize the download file |
562 // properly. | 593 // properly. |
563 DownloadFile* download_file( | 594 DownloadFile* download_file( |
564 new DownloadFile(info, download_manager_)); | 595 new DownloadFile(info, download_manager_)); |
(...skipping 16 matching lines...) Expand all Loading... |
581 | 612 |
582 // Download is complete. | 613 // Download is complete. |
583 EXPECT_TRUE(GetActiveDownloadItem(0) == NULL); | 614 EXPECT_TRUE(GetActiveDownloadItem(0) == NULL); |
584 EXPECT_TRUE(observer->hit_state(DownloadItem::IN_PROGRESS)); | 615 EXPECT_TRUE(observer->hit_state(DownloadItem::IN_PROGRESS)); |
585 EXPECT_FALSE(observer->hit_state(DownloadItem::CANCELLED)); | 616 EXPECT_FALSE(observer->hit_state(DownloadItem::CANCELLED)); |
586 EXPECT_FALSE(observer->hit_state(DownloadItem::INTERRUPTED)); | 617 EXPECT_FALSE(observer->hit_state(DownloadItem::INTERRUPTED)); |
587 EXPECT_TRUE(observer->hit_state(DownloadItem::COMPLETE)); | 618 EXPECT_TRUE(observer->hit_state(DownloadItem::COMPLETE)); |
588 EXPECT_FALSE(observer->hit_state(DownloadItem::REMOVING)); | 619 EXPECT_FALSE(observer->hit_state(DownloadItem::REMOVING)); |
589 EXPECT_TRUE(observer->was_updated()); | 620 EXPECT_TRUE(observer->was_updated()); |
590 EXPECT_FALSE(observer->was_opened()); | 621 EXPECT_FALSE(observer->was_opened()); |
| 622 EXPECT_FALSE(download->file_externally_removed()); |
591 EXPECT_EQ(DownloadItem::COMPLETE, download->state()); | 623 EXPECT_EQ(DownloadItem::COMPLETE, download->state()); |
| 624 EXPECT_EQ(download_item_model->GetStatusText(), ASCIIToUTF16("")); |
592 | 625 |
593 EXPECT_TRUE(file_util::PathExists(new_path)); | 626 EXPECT_TRUE(file_util::PathExists(new_path)); |
594 EXPECT_FALSE(file_util::PathExists(cr_path)); | 627 EXPECT_FALSE(file_util::PathExists(cr_path)); |
595 EXPECT_FALSE(file_util::PathExists(unique_new_path)); | 628 EXPECT_FALSE(file_util::PathExists(unique_new_path)); |
596 std::string file_contents; | 629 std::string file_contents; |
597 EXPECT_TRUE(file_util::ReadFileToString(new_path, &file_contents)); | 630 EXPECT_TRUE(file_util::ReadFileToString(new_path, &file_contents)); |
598 EXPECT_EQ(std::string(kTestData), file_contents); | 631 EXPECT_EQ(std::string(kTestData), file_contents); |
599 } | 632 } |
| 633 |
| 634 TEST_F(DownloadManagerTest, DownloadRemoveTest) { |
| 635 using ::testing::_; |
| 636 using ::testing::CreateFunctor; |
| 637 using ::testing::Invoke; |
| 638 using ::testing::Return; |
| 639 |
| 640 // Create a temporary directory. |
| 641 ScopedTempDir temp_dir_; |
| 642 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| 643 |
| 644 // File names we're using. |
| 645 const FilePath new_path(temp_dir_.path().AppendASCII("foo.txt")); |
| 646 const FilePath cr_path(download_util::GetCrDownloadPath(new_path)); |
| 647 EXPECT_FALSE(file_util::PathExists(new_path)); |
| 648 |
| 649 // |info| will be destroyed in download_manager_. |
| 650 DownloadCreateInfo* info(new DownloadCreateInfo); |
| 651 info->download_id = static_cast<int>(0); |
| 652 info->prompt_user_for_save_location = true; |
| 653 info->is_dangerous_file = false; |
| 654 info->is_dangerous_url = false; |
| 655 |
| 656 download_manager_->CreateDownloadItem(info); |
| 657 |
| 658 DownloadItem* download = GetActiveDownloadItem(0); |
| 659 ASSERT_TRUE(download != NULL); |
| 660 scoped_ptr<DownloadItemModel> download_item_model( |
| 661 new DownloadItemModel(download)); |
| 662 |
| 663 EXPECT_EQ(DownloadItem::IN_PROGRESS, download->state()); |
| 664 scoped_ptr<ItemObserver> observer(new ItemObserver(download)); |
| 665 |
| 666 // Create and initialize the download file. We're bypassing the first part |
| 667 // of the download process and skipping to the part after the final file |
| 668 // name has been chosen, so we need to initialize the download file |
| 669 // properly. |
| 670 DownloadFile* download_file( |
| 671 new DownloadFile(info, download_manager_)); |
| 672 download_file->Rename(cr_path); |
| 673 // This creates the .crdownload version of the file. |
| 674 download_file->Initialize(false); |
| 675 // |download_file| is owned by DownloadFileManager. |
| 676 AddDownloadToFileManager(info->download_id, download_file); |
| 677 |
| 678 info->path = new_path; |
| 679 AttachDownloadItem(info); |
| 680 message_loop_.RunAllPending(); |
| 681 EXPECT_TRUE(GetActiveDownloadItem(0) != NULL); |
| 682 |
| 683 download_file->AppendDataToFile(kTestData, kTestDataLen); |
| 684 |
| 685 // Finish the download. |
| 686 OnAllDataSaved(0, kTestDataLen, ""); |
| 687 message_loop_.RunAllPending(); |
| 688 |
| 689 // Download is complete. |
| 690 EXPECT_TRUE(GetActiveDownloadItem(0) == NULL); |
| 691 EXPECT_TRUE(observer->hit_state(DownloadItem::IN_PROGRESS)); |
| 692 EXPECT_FALSE(observer->hit_state(DownloadItem::CANCELLED)); |
| 693 EXPECT_FALSE(observer->hit_state(DownloadItem::INTERRUPTED)); |
| 694 EXPECT_TRUE(observer->hit_state(DownloadItem::COMPLETE)); |
| 695 EXPECT_FALSE(observer->hit_state(DownloadItem::REMOVING)); |
| 696 EXPECT_TRUE(observer->was_updated()); |
| 697 EXPECT_FALSE(observer->was_opened()); |
| 698 EXPECT_FALSE(download->file_externally_removed()); |
| 699 EXPECT_EQ(DownloadItem::COMPLETE, download->state()); |
| 700 EXPECT_EQ(download_item_model->GetStatusText(), ASCIIToUTF16("")); |
| 701 |
| 702 EXPECT_TRUE(file_util::PathExists(new_path)); |
| 703 EXPECT_FALSE(file_util::PathExists(cr_path)); |
| 704 |
| 705 // Remove the downloaded file. |
| 706 bool removed = file_util::Delete(new_path, false); |
| 707 ASSERT_TRUE(removed); |
| 708 download->OnDownloadedFileRemoved(); |
| 709 message_loop_.RunAllPending(); |
| 710 |
| 711 EXPECT_TRUE(GetActiveDownloadItem(0) == NULL); |
| 712 EXPECT_TRUE(observer->hit_state(DownloadItem::IN_PROGRESS)); |
| 713 EXPECT_FALSE(observer->hit_state(DownloadItem::CANCELLED)); |
| 714 EXPECT_FALSE(observer->hit_state(DownloadItem::INTERRUPTED)); |
| 715 EXPECT_TRUE(observer->hit_state(DownloadItem::COMPLETE)); |
| 716 EXPECT_FALSE(observer->hit_state(DownloadItem::REMOVING)); |
| 717 EXPECT_TRUE(observer->was_updated()); |
| 718 EXPECT_FALSE(observer->was_opened()); |
| 719 EXPECT_TRUE(download->file_externally_removed()); |
| 720 EXPECT_EQ(DownloadItem::COMPLETE, download->state()); |
| 721 EXPECT_EQ(download_item_model->GetStatusText(), |
| 722 l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_REMOVED)); |
| 723 |
| 724 EXPECT_FALSE(file_util::PathExists(new_path)); |
| 725 } |
OLD | NEW |