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

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

Issue 8135017: Refactor downloads into a ProfileKeyedService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merged to LKGR to run try bots. Created 9 years, 2 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/file_path.h" 6 #include "base/file_path.h"
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/path_service.h" 9 #include "base/path_service.h"
10 #include "base/scoped_temp_dir.h" 10 #include "base/scoped_temp_dir.h"
11 #include "base/stl_util.h" 11 #include "base/stl_util.h"
12 #include "base/test/test_file_util.h" 12 #include "base/test/test_file_util.h"
13 #include "base/utf_string_conversions.h" 13 #include "base/utf_string_conversions.h"
14 #include "chrome/browser/browser_process.h" 14 #include "chrome/browser/browser_process.h"
15 #include "chrome/browser/download/chrome_download_manager_delegate.h" 15 #include "chrome/browser/download/chrome_download_manager_delegate.h"
16 #include "chrome/browser/download/download_crx_util.h" 16 #include "chrome/browser/download/download_crx_util.h"
17 #include "chrome/browser/download/download_history.h" 17 #include "chrome/browser/download/download_history.h"
18 #include "chrome/browser/download/download_prefs.h" 18 #include "chrome/browser/download/download_prefs.h"
19 #include "chrome/browser/download/download_service.h"
20 #include "chrome/browser/download/download_service_factory.h"
19 #include "chrome/browser/download/download_shelf.h" 21 #include "chrome/browser/download/download_shelf.h"
20 #include "chrome/browser/download/download_util.h" 22 #include "chrome/browser/download/download_util.h"
21 #include "chrome/browser/extensions/extension_install_ui.h" 23 #include "chrome/browser/extensions/extension_install_ui.h"
22 #include "chrome/browser/extensions/extension_service.h" 24 #include "chrome/browser/extensions/extension_service.h"
23 #include "chrome/browser/history/history.h" 25 #include "chrome/browser/history/history.h"
24 #include "chrome/browser/net/url_request_mock_util.h" 26 #include "chrome/browser/net/url_request_mock_util.h"
25 #include "chrome/browser/prefs/pref_service.h" 27 #include "chrome/browser/prefs/pref_service.h"
26 #include "chrome/browser/profiles/profile.h" 28 #include "chrome/browser/profiles/profile.h"
27 #include "chrome/browser/ui/browser.h" 29 #include "chrome/browser/ui/browser.h"
28 #include "chrome/browser/ui/browser_list.h" 30 #include "chrome/browser/ui/browser_list.h"
(...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 int rdh_pending_requests_; 492 int rdh_pending_requests_;
491 int dfm_pending_downloads_; 493 int dfm_pending_downloads_;
492 494
493 DISALLOW_COPY_AND_ASSIGN(CancelTestDataCollector); 495 DISALLOW_COPY_AND_ASSIGN(CancelTestDataCollector);
494 }; 496 };
495 497
496 class PickSuggestedFileDelegate : public ChromeDownloadManagerDelegate { 498 class PickSuggestedFileDelegate : public ChromeDownloadManagerDelegate {
497 public: 499 public:
498 explicit PickSuggestedFileDelegate(Profile* profile) 500 explicit PickSuggestedFileDelegate(Profile* profile)
499 : ChromeDownloadManagerDelegate(profile) { 501 : ChromeDownloadManagerDelegate(profile) {
500 SetDownloadManager(profile->GetDownloadManager()); 502 SetDownloadManager(
503 DownloadServiceFactory::GetForProfile(profile)->GetDownloadManager());
501 } 504 }
502 505
503 virtual void ChooseDownloadPath(TabContents* tab_contents, 506 virtual void ChooseDownloadPath(TabContents* tab_contents,
504 const FilePath& suggested_path, 507 const FilePath& suggested_path,
505 void* data) OVERRIDE { 508 void* data) OVERRIDE {
506 if (download_manager_) 509 if (download_manager_)
507 download_manager_->FileSelected(suggested_path, data); 510 download_manager_->FileSelected(suggested_path, data);
508 } 511 }
509 }; 512 };
510 513
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
586 589
587 // Proceed without confirmation prompt. 590 // Proceed without confirmation prompt.
588 virtual void ConfirmInstall(Delegate* delegate, const Extension* extension) { 591 virtual void ConfirmInstall(Delegate* delegate, const Extension* extension) {
589 delegate->InstallUIProceed(); 592 delegate->InstallUIProceed();
590 } 593 }
591 594
592 virtual void OnInstallSuccess(const Extension* extension, SkBitmap* icon) {} 595 virtual void OnInstallSuccess(const Extension* extension, SkBitmap* icon) {}
593 virtual void OnInstallFailure(const std::string& error) {} 596 virtual void OnInstallFailure(const std::string& error) {}
594 }; 597 };
595 598
599 static DownloadManager* DownloadManagerForBrowser(Browser* browser) {
600 return DownloadServiceFactory::GetForProfile(browser->profile())
601 ->GetDownloadManager();
Miranda Callahan 2011/10/06 20:07:32 nit: I think this is nonstandard wrapping (at leas
Randy Smith (Not in Mondays) 2011/10/08 23:46:54 The problem is that that's not the right parenthes
602 }
603
596 } // namespace 604 } // namespace
597 605
598 // While an object of this class exists, it will mock out download 606 // While an object of this class exists, it will mock out download
599 // opening for all downloads created on the specified download manager. 607 // opening for all downloads created on the specified download manager.
600 class MockDownloadOpeningObserver : public DownloadManager::Observer { 608 class MockDownloadOpeningObserver : public DownloadManager::Observer {
601 public: 609 public:
602 explicit MockDownloadOpeningObserver(DownloadManager* manager) 610 explicit MockDownloadOpeningObserver(DownloadManager* manager)
603 : download_manager_(manager) { 611 : download_manager_(manager) {
604 download_manager_->AddObserver(this); 612 download_manager_->AddObserver(this);
605 } 613 }
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
658 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); 666 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible());
659 667
660 // Set up the temporary download folder. 668 // Set up the temporary download folder.
661 bool created_downloads_dir = CreateAndSetDownloadsDirectory(browser()); 669 bool created_downloads_dir = CreateAndSetDownloadsDirectory(browser());
662 EXPECT_TRUE(created_downloads_dir); 670 EXPECT_TRUE(created_downloads_dir);
663 if (!created_downloads_dir) 671 if (!created_downloads_dir)
664 return false; 672 return false;
665 browser()->profile()->GetPrefs()->SetBoolean(prefs::kPromptForDownload, 673 browser()->profile()->GetPrefs()->SetBoolean(prefs::kPromptForDownload,
666 prompt_for_download); 674 prompt_for_download);
667 675
668 DownloadManager* manager = browser()->profile()->GetDownloadManager(); 676 DownloadManager* manager = DownloadManagerForBrowser(browser());
669 DownloadPrefs::FromDownloadManager(manager)->ResetAutoOpen(); 677 DownloadPrefs::FromDownloadManager(manager)->ResetAutoOpen();
670 manager->RemoveAllDownloads(); 678 manager->RemoveAllDownloads();
671 679
672 return true; 680 return true;
673 } 681 }
674 682
675 protected: 683 protected:
676 684
677 enum SizeTestType { 685 enum SizeTestType {
678 SIZE_TEST_TYPE_KNOWN, 686 SIZE_TEST_TYPE_KNOWN,
(...skipping 23 matching lines...) Expand all
702 710
703 browser->profile()->GetPrefs()->SetFilePath( 711 browser->profile()->GetPrefs()->SetFilePath(
704 prefs::kDownloadDefaultDirectory, 712 prefs::kDownloadDefaultDirectory,
705 downloads_directory_.path()); 713 downloads_directory_.path());
706 714
707 return true; 715 return true;
708 } 716 }
709 717
710 DownloadPrefs* GetDownloadPrefs(Browser* browser) { 718 DownloadPrefs* GetDownloadPrefs(Browser* browser) {
711 return DownloadPrefs::FromDownloadManager( 719 return DownloadPrefs::FromDownloadManager(
712 browser->profile()->GetDownloadManager()); 720 DownloadManagerForBrowser(browser));
713 } 721 }
714 722
715 FilePath GetDownloadDirectory(Browser* browser) { 723 FilePath GetDownloadDirectory(Browser* browser) {
716 return GetDownloadPrefs(browser)->download_path(); 724 return GetDownloadPrefs(browser)->download_path();
717 } 725 }
718 726
719 // Create a DownloadsObserver that will wait for the 727 // Create a DownloadsObserver that will wait for the
720 // specified number of downloads to finish. 728 // specified number of downloads to finish.
721 DownloadsObserver* CreateWaiter(Browser* browser, int num_downloads) { 729 DownloadsObserver* CreateWaiter(Browser* browser, int num_downloads) {
722 DownloadManager* download_manager = 730 DownloadManager* download_manager = DownloadManagerForBrowser(browser);
723 browser->profile()->GetDownloadManager();
724 return new DownloadsObserver( 731 return new DownloadsObserver(
725 download_manager, num_downloads, 732 download_manager, num_downloads,
726 DownloadItem::COMPLETE, // Really done 733 DownloadItem::COMPLETE, // Really done
727 true, // Bail on select file 734 true, // Bail on select file
728 ON_DANGEROUS_DOWNLOAD_FAIL); 735 ON_DANGEROUS_DOWNLOAD_FAIL);
729 } 736 }
730 737
731 // Create a DownloadsObserver that will wait for the 738 // Create a DownloadsObserver that will wait for the
732 // specified number of downloads to start. 739 // specified number of downloads to start.
733 DownloadsObserver* CreateInProgressWaiter(Browser* browser, 740 DownloadsObserver* CreateInProgressWaiter(Browser* browser,
734 int num_downloads) { 741 int num_downloads) {
735 DownloadManager* download_manager = 742 DownloadManager* download_manager = DownloadManagerForBrowser(browser);
736 browser->profile()->GetDownloadManager();
737 return new DownloadsObserver( 743 return new DownloadsObserver(
738 download_manager, num_downloads, 744 download_manager, num_downloads,
739 DownloadItem::IN_PROGRESS, // Has started 745 DownloadItem::IN_PROGRESS, // Has started
740 true, // Bail on select file 746 true, // Bail on select file
741 ON_DANGEROUS_DOWNLOAD_FAIL); 747 ON_DANGEROUS_DOWNLOAD_FAIL);
742 } 748 }
743 749
744 // Create a DownloadsObserver that will wait for the 750 // Create a DownloadsObserver that will wait for the
745 // specified number of downloads to finish, or for 751 // specified number of downloads to finish, or for
746 // a dangerous download warning to be shown. 752 // a dangerous download warning to be shown.
747 DownloadsObserver* DangerousInstallWaiter( 753 DownloadsObserver* DangerousInstallWaiter(
748 Browser* browser, 754 Browser* browser,
749 int num_downloads, 755 int num_downloads,
750 DownloadItem::DownloadState final_state, 756 DownloadItem::DownloadState final_state,
751 DangerousDownloadAction dangerous_download_action) { 757 DangerousDownloadAction dangerous_download_action) {
752 DownloadManager* download_manager = 758 DownloadManager* download_manager = DownloadManagerForBrowser(browser);
753 browser->profile()->GetDownloadManager();
754 return new DownloadsObserver( 759 return new DownloadsObserver(
755 download_manager, num_downloads, 760 download_manager, num_downloads,
756 final_state, 761 final_state,
757 true, // Bail on select file 762 true, // Bail on select file
758 dangerous_download_action); 763 dangerous_download_action);
759 } 764 }
760 765
761 // Download |url|, then wait for the download to finish. 766 // Download |url|, then wait for the download to finish.
762 // |disposition| indicates where the navigation occurs (current tab, new 767 // |disposition| indicates where the navigation occurs (current tab, new
763 // foreground tab, etc). 768 // foreground tab, etc).
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
903 908
904 // Delete the file we just downloaded. 909 // Delete the file we just downloaded.
905 EXPECT_TRUE(file_util::DieFileDie(download_path, true)); 910 EXPECT_TRUE(file_util::DieFileDie(download_path, true));
906 EXPECT_FALSE(file_util::PathExists(download_path)); 911 EXPECT_FALSE(file_util::PathExists(download_path));
907 912
908 return true; 913 return true;
909 } 914 }
910 915
911 void GetDownloads(Browser* browser, std::vector<DownloadItem*>* downloads) { 916 void GetDownloads(Browser* browser, std::vector<DownloadItem*>* downloads) {
912 DCHECK(downloads); 917 DCHECK(downloads);
913 DownloadManager* manager = browser->profile()->GetDownloadManager(); 918 DownloadManager* manager = DownloadManagerForBrowser(browser);
914 manager->SearchDownloads(string16(), downloads); 919 manager->SearchDownloads(string16(), downloads);
915 } 920 }
916 921
917 // Check that the download UI (shelf on non-chromeos or panel on chromeos) 922 // Check that the download UI (shelf on non-chromeos or panel on chromeos)
918 // is visible or not as expected. Additionally, check that the filename 923 // is visible or not as expected. Additionally, check that the filename
919 // is present in the UI (currently only on chromeos). 924 // is present in the UI (currently only on chromeos).
920 void CheckDownloadUI(Browser* browser, bool expected_non_cros, 925 void CheckDownloadUI(Browser* browser, bool expected_non_cros,
921 bool expected_cros, const FilePath& filename) { 926 bool expected_cros, const FilePath& filename) {
922 #if defined(OS_CHROMEOS) 927 #if defined(OS_CHROMEOS)
923 #if defined(TOUCH_UI) 928 #if defined(TOUCH_UI)
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
965 #endif 970 #endif
966 EXPECT_EQ(expected, BrowserList::size()); 971 EXPECT_EQ(expected, BrowserList::size());
967 } 972 }
968 973
969 // Arrange for select file calls on the given browser from the 974 // Arrange for select file calls on the given browser from the
970 // download manager to always choose the suggested file. 975 // download manager to always choose the suggested file.
971 void NullSelectFile(Browser* browser) { 976 void NullSelectFile(Browser* browser) {
972 PickSuggestedFileDelegate* new_delegate = 977 PickSuggestedFileDelegate* new_delegate =
973 new PickSuggestedFileDelegate(browser->profile()); 978 new PickSuggestedFileDelegate(browser->profile());
974 979
975 DownloadManager* manager = browser->profile()->GetDownloadManager(); 980 // Gives ownership to DownloadService.
976 981 DownloadServiceFactory::GetForProfile(
977 new_delegate->SetDownloadManager(manager); 982 browser->profile())->SetDownloadManagerDelegate(new_delegate);
978 manager->set_delegate(new_delegate);
979
980 // Gives ownership to Profile.
981 browser->profile()->SetDownloadManagerDelegate(new_delegate);
982 } 983 }
983 984
984 private: 985 private:
985 // Location of the test data. 986 // Location of the test data.
986 FilePath test_dir_; 987 FilePath test_dir_;
987 988
988 // Location of the downloads directory for these tests 989 // Location of the downloads directory for these tests
989 ScopedTempDir downloads_directory_; 990 ScopedTempDir downloads_directory_;
990 }; 991 };
991 992
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1038 ASSERT_TRUE(InitialSetup(true)); 1039 ASSERT_TRUE(InitialSetup(true));
1039 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1040 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1040 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1041 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1041 1042
1042 NullSelectFile(browser()); 1043 NullSelectFile(browser());
1043 1044
1044 // Download the file and wait. We expect the Select File dialog to appear 1045 // Download the file and wait. We expect the Select File dialog to appear
1045 // due to the MIME type, but we still wait until the download completes. 1046 // due to the MIME type, but we still wait until the download completes.
1046 scoped_ptr<DownloadsObserver> observer( 1047 scoped_ptr<DownloadsObserver> observer(
1047 new DownloadsObserver( 1048 new DownloadsObserver(
1048 browser()->profile()->GetDownloadManager(), 1049 DownloadManagerForBrowser(browser()),
1049 1, 1050 1,
1050 DownloadItem::COMPLETE, // Really done 1051 DownloadItem::COMPLETE, // Really done
1051 false, // Continue on select file. 1052 false, // Continue on select file.
1052 ON_DANGEROUS_DOWNLOAD_FAIL)); 1053 ON_DANGEROUS_DOWNLOAD_FAIL));
1053 ui_test_utils::NavigateToURLWithDisposition( 1054 ui_test_utils::NavigateToURLWithDisposition(
1054 browser(), url, CURRENT_TAB, 1055 browser(), url, CURRENT_TAB,
1055 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 1056 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
1056 observer->WaitForFinished(); 1057 observer->WaitForFinished();
1057 EXPECT_TRUE(observer->select_file_dialog_seen()); 1058 EXPECT_TRUE(observer->select_file_dialog_seen());
1058 1059
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
1483 1484
1484 // Create a download, wait until it's started, and confirm 1485 // Create a download, wait until it's started, and confirm
1485 // we're in the expected state. 1486 // we're in the expected state.
1486 scoped_ptr<DownloadsObserver> observer( 1487 scoped_ptr<DownloadsObserver> observer(
1487 CreateInProgressWaiter(browser(), 1)); 1488 CreateInProgressWaiter(browser(), 1));
1488 ui_test_utils::NavigateToURL( 1489 ui_test_utils::NavigateToURL(
1489 browser(), GURL(URLRequestSlowDownloadJob::kUnknownSizeUrl)); 1490 browser(), GURL(URLRequestSlowDownloadJob::kUnknownSizeUrl));
1490 observer->WaitForFinished(); 1491 observer->WaitForFinished();
1491 1492
1492 std::vector<DownloadItem*> downloads; 1493 std::vector<DownloadItem*> downloads;
1493 browser()->profile()->GetDownloadManager()->SearchDownloads( 1494 DownloadManagerForBrowser(browser())->SearchDownloads(
1494 string16(), &downloads); 1495 string16(), &downloads);
1495 ASSERT_EQ(1u, downloads.size()); 1496 ASSERT_EQ(1u, downloads.size());
1496 ASSERT_EQ(DownloadItem::IN_PROGRESS, downloads[0]->state()); 1497 ASSERT_EQ(DownloadItem::IN_PROGRESS, downloads[0]->state());
1497 CheckDownloadUI(browser(), true, true, FilePath()); 1498 CheckDownloadUI(browser(), true, true, FilePath());
1498 1499
1499 // Cancel the download and wait for download system quiesce. 1500 // Cancel the download and wait for download system quiesce.
1500 downloads[0]->Delete(DownloadItem::DELETE_DUE_TO_USER_DISCARD); 1501 downloads[0]->Delete(DownloadItem::DELETE_DUE_TO_USER_DISCARD);
1501 scoped_refptr<DownloadsFlushObserver> flush_observer( 1502 scoped_refptr<DownloadsFlushObserver> flush_observer(
1502 new DownloadsFlushObserver(browser()->profile()->GetDownloadManager())); 1503 new DownloadsFlushObserver(DownloadManagerForBrowser(browser())));
1503 flush_observer->WaitForFlush(); 1504 flush_observer->WaitForFlush();
1504 1505
1505 // Get the important info from other threads and check it. 1506 // Get the important info from other threads and check it.
1506 scoped_refptr<CancelTestDataCollector> info(new CancelTestDataCollector()); 1507 scoped_refptr<CancelTestDataCollector> info(new CancelTestDataCollector());
1507 info->WaitForDataCollected(); 1508 info->WaitForDataCollected();
1508 EXPECT_EQ(0, info->rdh_pending_requests()); 1509 EXPECT_EQ(0, info->rdh_pending_requests());
1509 EXPECT_EQ(0, info->dfm_pending_downloads()); 1510 EXPECT_EQ(0, info->dfm_pending_downloads());
1510 1511
1511 // Using "DownloadItem::Remove" follows the discard dangerous download path, 1512 // Using "DownloadItem::Remove" follows the discard dangerous download path,
1512 // which completely removes the browser from the shelf and closes the shelf 1513 // which completely removes the browser from the shelf and closes the shelf
(...skipping 20 matching lines...) Expand all
1533 int64 db_handle = downloads[0]->db_handle(); 1534 int64 db_handle = downloads[0]->db_handle();
1534 1535
1535 // Check state. 1536 // Check state.
1536 EXPECT_EQ(1, browser()->tab_count()); 1537 EXPECT_EQ(1, browser()->tab_count());
1537 CheckDownload(browser(), file, file); 1538 CheckDownload(browser(), file, file);
1538 CheckDownloadUI(browser(), true, true, file); 1539 CheckDownloadUI(browser(), true, true, file);
1539 1540
1540 // Check history results. 1541 // Check history results.
1541 DownloadsHistoryDataCollector history_collector( 1542 DownloadsHistoryDataCollector history_collector(
1542 db_handle, 1543 db_handle,
1543 browser()->profile()->GetDownloadManager()); 1544 DownloadManagerForBrowser(browser()));
1544 DownloadPersistentStoreInfo info; 1545 DownloadPersistentStoreInfo info;
1545 EXPECT_TRUE(history_collector.GetDownloadsHistoryEntry(&info)) << db_handle; 1546 EXPECT_TRUE(history_collector.GetDownloadsHistoryEntry(&info)) << db_handle;
1546 EXPECT_EQ(file, info.path.BaseName()); 1547 EXPECT_EQ(file, info.path.BaseName());
1547 EXPECT_EQ(url, info.url); 1548 EXPECT_EQ(url, info.url);
1548 // Ignore start_time. 1549 // Ignore start_time.
1549 EXPECT_EQ(origin_size, info.received_bytes); 1550 EXPECT_EQ(origin_size, info.received_bytes);
1550 EXPECT_EQ(origin_size, info.total_bytes); 1551 EXPECT_EQ(origin_size, info.total_bytes);
1551 EXPECT_EQ(DownloadItem::COMPLETE, info.state); 1552 EXPECT_EQ(DownloadItem::COMPLETE, info.state);
1552 } 1553 }
1553 1554
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1627 IN_PROC_BROWSER_TEST_F(DownloadTest, AutoOpen) { 1628 IN_PROC_BROWSER_TEST_F(DownloadTest, AutoOpen) {
1628 ASSERT_TRUE(InitialSetup(false)); 1629 ASSERT_TRUE(InitialSetup(false));
1629 FilePath file(FILE_PATH_LITERAL("download-autoopen.txt")); 1630 FilePath file(FILE_PATH_LITERAL("download-autoopen.txt"));
1630 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1631 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1631 1632
1632 ASSERT_TRUE( 1633 ASSERT_TRUE(
1633 GetDownloadPrefs(browser())->EnableAutoOpenBasedOnExtension(file)); 1634 GetDownloadPrefs(browser())->EnableAutoOpenBasedOnExtension(file));
1634 1635
1635 // Mock out external opening on all downloads until end of test. 1636 // Mock out external opening on all downloads until end of test.
1636 MockDownloadOpeningObserver observer( 1637 MockDownloadOpeningObserver observer(
1637 browser()->profile()->GetDownloadManager()); 1638 DownloadManagerForBrowser(browser()));
1638 1639
1639 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); 1640 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG);
1640 1641
1641 // Find the download and confirm it was opened. 1642 // Find the download and confirm it was opened.
1642 std::vector<DownloadItem*> downloads; 1643 std::vector<DownloadItem*> downloads;
1643 browser()->profile()->GetDownloadManager()->SearchDownloads( 1644 DownloadManagerForBrowser(browser())->SearchDownloads(
1644 string16(), &downloads); 1645 string16(), &downloads);
1645 ASSERT_EQ(1u, downloads.size()); 1646 ASSERT_EQ(1u, downloads.size());
1646 EXPECT_EQ(DownloadItem::COMPLETE, downloads[0]->state()); 1647 EXPECT_EQ(DownloadItem::COMPLETE, downloads[0]->state());
1647 EXPECT_TRUE(downloads[0]->opened()); 1648 EXPECT_TRUE(downloads[0]->opened());
1648 1649
1649 // As long as we're here, confirmed everything else is good. 1650 // As long as we're here, confirmed everything else is good.
1650 EXPECT_EQ(1, browser()->tab_count()); 1651 EXPECT_EQ(1, browser()->tab_count());
1651 CheckDownload(browser(), file, file); 1652 CheckDownload(browser(), file, file);
1652 // Download shelf should close. Download panel stays open on ChromeOS. 1653 // Download shelf should close. Download panel stays open on ChromeOS.
1653 CheckDownloadUI(browser(), false, true, FilePath()); 1654 CheckDownloadUI(browser(), false, true, FilePath());
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
1786 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); 1787 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen());
1787 1788
1788 // Download shelf should close. Download panel stays open on ChromeOS. 1789 // Download shelf should close. Download panel stays open on ChromeOS.
1789 CheckDownloadUI(browser(), false, true, FilePath()); 1790 CheckDownloadUI(browser(), false, true, FilePath());
1790 1791
1791 // Check that the extension was installed. 1792 // Check that the extension was installed.
1792 ExtensionService* extension_service = 1793 ExtensionService* extension_service =
1793 browser()->profile()->GetExtensionService(); 1794 browser()->profile()->GetExtensionService();
1794 ASSERT_TRUE(extension_service->GetExtensionById(kLargeThemeCrxId, false)); 1795 ASSERT_TRUE(extension_service->GetExtensionById(kLargeThemeCrxId, false));
1795 } 1796 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698