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

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

Powered by Google App Engine
This is Rietveld 408576698