Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(25)

Side by Side Diff: chrome/browser/download/download_manager_unittest.cc

Issue 6905049: Detect removed files and reflect the state in chrome://downloads and the download shelf (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Correct typo Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698