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

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

Issue 10073017: Remove Active Downloads UI. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 8 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <sstream> 5 #include <sstream>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/file_path.h" 9 #include "base/file_path.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 21 matching lines...) Expand all
32 #include "chrome/browser/extensions/extension_install_ui.h" 32 #include "chrome/browser/extensions/extension_install_ui.h"
33 #include "chrome/browser/extensions/extension_service.h" 33 #include "chrome/browser/extensions/extension_service.h"
34 #include "chrome/browser/history/history.h" 34 #include "chrome/browser/history/history.h"
35 #include "chrome/browser/net/url_request_mock_util.h" 35 #include "chrome/browser/net/url_request_mock_util.h"
36 #include "chrome/browser/prefs/pref_service.h" 36 #include "chrome/browser/prefs/pref_service.h"
37 #include "chrome/browser/profiles/profile.h" 37 #include "chrome/browser/profiles/profile.h"
38 #include "chrome/browser/tab_contents/render_view_context_menu.h" 38 #include "chrome/browser/tab_contents/render_view_context_menu.h"
39 #include "chrome/browser/ui/browser.h" 39 #include "chrome/browser/ui/browser.h"
40 #include "chrome/browser/ui/browser_list.h" 40 #include "chrome/browser/ui/browser_list.h"
41 #include "chrome/browser/ui/browser_window.h" 41 #include "chrome/browser/ui/browser_window.h"
42 #include "chrome/browser/ui/webui/chromeos/active_downloads_ui.h"
43 #include "chrome/common/chrome_notification_types.h" 42 #include "chrome/common/chrome_notification_types.h"
44 #include "chrome/common/chrome_paths.h" 43 #include "chrome/common/chrome_paths.h"
45 #include "chrome/common/pref_names.h" 44 #include "chrome/common/pref_names.h"
46 #include "chrome/common/url_constants.h" 45 #include "chrome/common/url_constants.h"
47 #include "chrome/test/base/in_process_browser_test.h" 46 #include "chrome/test/base/in_process_browser_test.h"
48 #include "chrome/test/base/ui_test_utils.h" 47 #include "chrome/test/base/ui_test_utils.h"
49 #include "content/public/browser/browser_thread.h" 48 #include "content/public/browser/browser_thread.h"
50 #include "content/public/browser/download_item.h" 49 #include "content/public/browser/download_item.h"
51 #include "content/public/browser/download_manager.h" 50 #include "content/public/browser/download_manager.h"
52 #include "content/public/browser/download_persistent_store_info.h" 51 #include "content/public/browser/download_persistent_store_info.h"
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 EXPECT_NOTHING, 242 EXPECT_NOTHING,
244 EXPECT_SELECT_DIALOG 243 EXPECT_SELECT_DIALOG
245 }; 244 };
246 245
247 // Choice of navigation or direct fetch. Used by |DownloadFileCheckErrors()|. 246 // Choice of navigation or direct fetch. Used by |DownloadFileCheckErrors()|.
248 enum DownloadMethod { 247 enum DownloadMethod {
249 DOWNLOAD_NAVIGATE, 248 DOWNLOAD_NAVIGATE,
250 DOWNLOAD_DIRECT 249 DOWNLOAD_DIRECT
251 }; 250 };
252 251
252 // State of download shelf.
253 enum DownloadShelfVisibility {
254 SHELF_HIDDEN,
255 SHELF_VISIBLE
256 };
257
253 // Information passed in to |DownloadFileCheckErrors()|. 258 // Information passed in to |DownloadFileCheckErrors()|.
254 struct DownloadInfo { 259 struct DownloadInfo {
255 const char* url_name; // URL for the download. 260 const char* url_name; // URL for the download.
256 DownloadMethod download_method; // Navigation or Direct. 261 DownloadMethod download_method; // Navigation or Direct.
257 // Download interrupt reason (NONE is OK). 262 // Download interrupt reason (NONE is OK).
258 content::DownloadInterruptReason reason; 263 content::DownloadInterruptReason reason;
259 bool show_download_item; // True if the download item appears on the shelf. 264 bool show_download_item; // True if the download item appears on the shelf.
260 bool should_redirect_to_documents; // True if we save it in "My Documents". 265 bool should_redirect_to_documents; // True if we save it in "My Documents".
261 }; 266 };
262 267
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); 549 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE));
545 CheckDownloadStatesForBrowser(browser, 1, DownloadItem::COMPLETE); 550 CheckDownloadStatesForBrowser(browser, 1, DownloadItem::COMPLETE);
546 551
547 EXPECT_EQ(2, browser->tab_count()); 552 EXPECT_EQ(2, browser->tab_count());
548 553
549 // TODO(ahendrickson): check download status text after downloading. 554 // TODO(ahendrickson): check download status text after downloading.
550 555
551 FilePath basefilename(filename.BaseName()); 556 FilePath basefilename(filename.BaseName());
552 net::FileURLToFilePath(url, &filename); 557 net::FileURLToFilePath(url, &filename);
553 FilePath download_path = downloads_directory_.path().Append(basefilename); 558 FilePath download_path = downloads_directory_.path().Append(basefilename);
554 CheckDownloadUI(browser, true, true, basefilename); 559 CheckDownloadShelfVisibility(browser, SHELF_VISIBLE);
555 560
556 bool downloaded_path_exists = file_util::PathExists(download_path); 561 bool downloaded_path_exists = file_util::PathExists(download_path);
557 EXPECT_TRUE(downloaded_path_exists); 562 EXPECT_TRUE(downloaded_path_exists);
558 if (!downloaded_path_exists) 563 if (!downloaded_path_exists)
559 return false; 564 return false;
560 565
561 // Check the file contents. 566 // Check the file contents.
562 size_t file_size = URLRequestSlowDownloadJob::kFirstDownloadSize + 567 size_t file_size = URLRequestSlowDownloadJob::kFirstDownloadSize +
563 URLRequestSlowDownloadJob::kSecondDownloadSize; 568 URLRequestSlowDownloadJob::kSecondDownloadSize;
564 std::string expected_contents(file_size, '*'); 569 std::string expected_contents(file_size, '*');
565 EXPECT_TRUE(VerifyFile(download_path, expected_contents, file_size)); 570 EXPECT_TRUE(VerifyFile(download_path, expected_contents, file_size));
566 571
567 // Delete the file we just downloaded. 572 // Delete the file we just downloaded.
568 EXPECT_TRUE(file_util::DieFileDie(download_path, true)); 573 EXPECT_TRUE(file_util::DieFileDie(download_path, true));
569 EXPECT_FALSE(file_util::PathExists(download_path)); 574 EXPECT_FALSE(file_util::PathExists(download_path));
570 575
571 return true; 576 return true;
572 } 577 }
573 578
574 void GetDownloads(Browser* browser, std::vector<DownloadItem*>* downloads) { 579 void GetDownloads(Browser* browser, std::vector<DownloadItem*>* downloads) {
575 DCHECK(downloads); 580 DCHECK(downloads);
576 DownloadManager* manager = DownloadManagerForBrowser(browser); 581 DownloadManager* manager = DownloadManagerForBrowser(browser);
577 manager->SearchDownloads(string16(), downloads); 582 manager->SearchDownloads(string16(), downloads);
578 } 583 }
579 584
580 // Check that the download UI (shelf on non-chromeos or panel on chromeos) 585 // Check that the download shelf is visible or not as expected.
581 // is visible or not as expected. Additionally, check that the filename 586 void CheckDownloadShelfVisibility(Browser* browser,
achuithb 2012/04/16 14:27:05 Not sure if this function and the enum is worth it
asanka 2012/04/17 20:02:25 Done.
582 // is present in the UI (currently only on chromeos). 587 DownloadShelfVisibility expected) {
583 void CheckDownloadUI(Browser* browser, bool expected_non_cros, 588 EXPECT_EQ((expected == SHELF_VISIBLE),
584 bool expected_cros, const FilePath& filename) { 589 browser->window()->IsDownloadShelfVisible());
585 #if defined(OS_CHROMEOS) && !defined(USE_AURA)
586 Browser* popup = ActiveDownloadsUI::GetPopup();
587 EXPECT_EQ(expected_cros, popup != NULL);
588 if (!popup || filename.empty())
589 return;
590
591 ActiveDownloadsUI* downloads_ui = static_cast<ActiveDownloadsUI*>(
592 popup->GetSelectedWebContents()->GetWebUI()->GetController());
593
594 ASSERT_TRUE(downloads_ui);
595 const ActiveDownloadsUI::DownloadList& downloads =
596 downloads_ui->GetDownloads();
597 EXPECT_EQ(downloads.size(), 1U);
598
599 FilePath full_path(DestinationFile(browser, filename));
600 bool exists = false;
601 for (size_t i = 0; i < downloads.size(); ++i) {
602 if (downloads[i]->GetFullPath() == full_path) {
603 exists = true;
604 break;
605 }
606 }
607 EXPECT_TRUE(exists);
608 #else
609 EXPECT_EQ(expected_non_cros, browser->window()->IsDownloadShelfVisible());
610 // TODO: Check for filename match in download shelf. 590 // TODO: Check for filename match in download shelf.
611 #endif
612 } 591 }
613 static void ExpectWindowCountAfterDownload(size_t expected) { 592 static void ExpectWindowCountAfterDownload(size_t expected) {
614 #if defined(OS_CHROMEOS) && !defined(USE_AURA)
615 // On ChromeOS, a download panel is created to display
616 // download information, and this counts as a window.
617 expected++;
618 #endif
619 EXPECT_EQ(expected, BrowserList::size()); 593 EXPECT_EQ(expected, BrowserList::size());
620 } 594 }
621 595
622 // Arrange for select file calls on the given browser from the 596 // Arrange for select file calls on the given browser from the
623 // download manager to always choose the suggested file. 597 // download manager to always choose the suggested file.
624 void NullSelectFile(Browser* browser) { 598 void NullSelectFile(Browser* browser) {
625 PickSuggestedFileDelegate* new_delegate = 599 PickSuggestedFileDelegate* new_delegate =
626 new PickSuggestedFileDelegate(browser->profile()); 600 new PickSuggestedFileDelegate(browser->profile());
627 601
628 // Gives ownership to DownloadService. 602 // Gives ownership to DownloadService.
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
908 ASSERT_TRUE(InitialSetup(false)); 882 ASSERT_TRUE(InitialSetup(false));
909 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 883 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
910 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 884 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
911 885
912 // Download the file and wait. We do not expect the Select File dialog. 886 // Download the file and wait. We do not expect the Select File dialog.
913 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); 887 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG);
914 888
915 // Check state. 889 // Check state.
916 EXPECT_EQ(1, browser()->tab_count()); 890 EXPECT_EQ(1, browser()->tab_count());
917 CheckDownload(browser(), file, file); 891 CheckDownload(browser(), file, file);
918 CheckDownloadUI(browser(), true, true, file); 892 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
919 } 893 }
920 894
921 #if defined(OS_WIN) 895 #if defined(OS_WIN)
922 // Download a file and confirm that the zone identifier (on windows) 896 // Download a file and confirm that the zone identifier (on windows)
923 // is set to internet. 897 // is set to internet.
924 IN_PROC_BROWSER_TEST_F(DownloadTest, CheckInternetZone) { 898 IN_PROC_BROWSER_TEST_F(DownloadTest, CheckInternetZone) {
925 ASSERT_TRUE(InitialSetup(false)); 899 ASSERT_TRUE(InitialSetup(false));
926 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 900 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
927 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 901 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
928 902
929 // Download the file and wait. We do not expect the Select File dialog. 903 // Download the file and wait. We do not expect the Select File dialog.
930 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); 904 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG);
931 905
932 // Check state. Special file state must be checked before CheckDownload, 906 // Check state. Special file state must be checked before CheckDownload,
933 // as CheckDownload will delete the output file. 907 // as CheckDownload will delete the output file.
934 EXPECT_EQ(1, browser()->tab_count()); 908 EXPECT_EQ(1, browser()->tab_count());
935 FilePath downloaded_file(DestinationFile(browser(), file)); 909 FilePath downloaded_file(DestinationFile(browser(), file));
936 if (file_util::VolumeSupportsADS(downloaded_file)) 910 if (file_util::VolumeSupportsADS(downloaded_file))
937 EXPECT_TRUE(file_util::HasInternetZoneIdentifier(downloaded_file)); 911 EXPECT_TRUE(file_util::HasInternetZoneIdentifier(downloaded_file));
938 CheckDownload(browser(), file, file); 912 CheckDownload(browser(), file, file);
939 CheckDownloadUI(browser(), true, true, file); 913 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
940 } 914 }
941 #endif 915 #endif
942 916
943 // Put up a Select File dialog when the file is downloaded, due to 917 // Put up a Select File dialog when the file is downloaded, due to
944 // downloads preferences settings. 918 // downloads preferences settings.
945 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadMimeTypeSelect) { 919 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadMimeTypeSelect) {
946 ASSERT_TRUE(InitialSetup(true)); 920 ASSERT_TRUE(InitialSetup(true));
947 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 921 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
948 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 922 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
949 923
(...skipping 11 matching lines...) Expand all
961 browser(), url, CURRENT_TAB, 935 browser(), url, CURRENT_TAB,
962 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 936 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
963 observer->WaitForFinished(); 937 observer->WaitForFinished();
964 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); 938 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE));
965 CheckDownloadStates(1, DownloadItem::COMPLETE); 939 CheckDownloadStates(1, DownloadItem::COMPLETE);
966 EXPECT_TRUE(observer->select_file_dialog_seen()); 940 EXPECT_TRUE(observer->select_file_dialog_seen());
967 941
968 // Check state. 942 // Check state.
969 EXPECT_EQ(1, browser()->tab_count()); 943 EXPECT_EQ(1, browser()->tab_count());
970 CheckDownload(browser(), file, file); 944 CheckDownload(browser(), file, file);
971 CheckDownloadUI(browser(), true, true, file); 945 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
972 } 946 }
973 947
974 // Access a file with a viewable mime-type, verify that a download 948 // Access a file with a viewable mime-type, verify that a download
975 // did not initiate. 949 // did not initiate.
976 IN_PROC_BROWSER_TEST_F(DownloadTest, NoDownload) { 950 IN_PROC_BROWSER_TEST_F(DownloadTest, NoDownload) {
977 ASSERT_TRUE(InitialSetup(false)); 951 ASSERT_TRUE(InitialSetup(false));
978 FilePath file(FILE_PATH_LITERAL("download-test2.html")); 952 FilePath file(FILE_PATH_LITERAL("download-test2.html"));
979 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 953 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
980 FilePath file_path(DestinationFile(browser(), file)); 954 FilePath file_path(DestinationFile(browser(), file));
981 955
982 // Open a web page and wait. 956 // Open a web page and wait.
983 ui_test_utils::NavigateToURL(browser(), url); 957 ui_test_utils::NavigateToURL(browser(), url);
984 958
985 // Check that we did not download the web page. 959 // Check that we did not download the web page.
986 EXPECT_FALSE(file_util::PathExists(file_path)); 960 EXPECT_FALSE(file_util::PathExists(file_path));
987 961
988 // Check state. 962 // Check state.
989 EXPECT_EQ(1, browser()->tab_count()); 963 EXPECT_EQ(1, browser()->tab_count());
990 CheckDownloadUI(browser(), false, false, FilePath()); 964 CheckDownloadShelfVisibility(browser(), SHELF_HIDDEN);
991 } 965 }
992 966
993 // Verify that when the DownloadResourceThrottle cancels a download, the 967 // Verify that when the DownloadResourceThrottle cancels a download, the
994 // download never makes it to the downloads system. 968 // download never makes it to the downloads system.
995 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadResourceThrottleCancels) { 969 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadResourceThrottleCancels) {
996 ASSERT_TRUE(InitialSetup(false)); 970 ASSERT_TRUE(InitialSetup(false));
997 971
998 // Navigate to a page with the same domain as the file to download. We can't 972 // Navigate to a page with the same domain as the file to download. We can't
999 // navigate directly to the file we don't want to download because cross-site 973 // navigate directly to the file we don't want to download because cross-site
1000 // navigations reset the TabDownloadState. 974 // navigations reset the TabDownloadState.
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1035 base::Bind(&MessageLoop::Quit, 1009 base::Bind(&MessageLoop::Quit,
1036 base::Unretained(MessageLoopForUI::current()))); 1010 base::Unretained(MessageLoopForUI::current())));
1037 1011
1038 // Check that we did not download the file. 1012 // Check that we did not download the file.
1039 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1013 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1040 FilePath file_path(DestinationFile(browser(), file)); 1014 FilePath file_path(DestinationFile(browser(), file));
1041 EXPECT_FALSE(file_util::PathExists(file_path)); 1015 EXPECT_FALSE(file_util::PathExists(file_path));
1042 1016
1043 // Check state. 1017 // Check state.
1044 EXPECT_EQ(1, browser()->tab_count()); 1018 EXPECT_EQ(1, browser()->tab_count());
1045 CheckDownloadUI(browser(), false, false, FilePath()); 1019 CheckDownloadShelfVisibility(browser(), SHELF_HIDDEN);
1046 1020
1047 // Verify that there's no pending download. 1021 // Verify that there's no pending download.
1048 EXPECT_TRUE(EnsureNoPendingDownloads()); 1022 EXPECT_TRUE(EnsureNoPendingDownloads());
1049 } 1023 }
1050 1024
1051 // Download a 0-size file with a content-disposition header, verify that the 1025 // Download a 0-size file with a content-disposition header, verify that the
1052 // download tab opened and the file exists as the filename specified in the 1026 // download tab opened and the file exists as the filename specified in the
1053 // header. This also ensures we properly handle empty file downloads. 1027 // header. This also ensures we properly handle empty file downloads.
1054 // The download shelf should be visible in the current tab. 1028 // The download shelf should be visible in the current tab.
1055 IN_PROC_BROWSER_TEST_F(DownloadTest, ContentDisposition) { 1029 IN_PROC_BROWSER_TEST_F(DownloadTest, ContentDisposition) {
1056 ASSERT_TRUE(InitialSetup(false)); 1030 ASSERT_TRUE(InitialSetup(false));
1057 FilePath file(FILE_PATH_LITERAL("download-test3.gif")); 1031 FilePath file(FILE_PATH_LITERAL("download-test3.gif"));
1058 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1032 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1059 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif")); 1033 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif"));
1060 1034
1061 // Download a file and wait. 1035 // Download a file and wait.
1062 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); 1036 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG);
1063 1037
1064 CheckDownload(browser(), download_file, file); 1038 CheckDownload(browser(), download_file, file);
1065 1039
1066 // Check state. 1040 // Check state.
1067 EXPECT_EQ(1, browser()->tab_count()); 1041 EXPECT_EQ(1, browser()->tab_count());
1068 CheckDownloadUI(browser(), true, true, download_file); 1042 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
1069 } 1043 }
1070 1044
1071 #if !defined(OS_CHROMEOS) || defined(USE_AURA)
1072 // Download shelf is not per-window on ChromeOS.
1073 // Test that the download shelf is per-window by starting a download in one 1045 // Test that the download shelf is per-window by starting a download in one
1074 // tab, opening a second tab, closing the shelf, going back to the first tab, 1046 // tab, opening a second tab, closing the shelf, going back to the first tab,
1075 // and checking that the shelf is closed. 1047 // and checking that the shelf is closed.
1076 IN_PROC_BROWSER_TEST_F(DownloadTest, PerWindowShelf) { 1048 IN_PROC_BROWSER_TEST_F(DownloadTest, PerWindowShelf) {
1077 ASSERT_TRUE(InitialSetup(false)); 1049 ASSERT_TRUE(InitialSetup(false));
1078 FilePath file(FILE_PATH_LITERAL("download-test3.gif")); 1050 FilePath file(FILE_PATH_LITERAL("download-test3.gif"));
1079 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1051 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1080 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif")); 1052 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif"));
1081 1053
1082 // Download a file and wait. 1054 // Download a file and wait.
1083 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); 1055 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG);
1084 1056
1085 CheckDownload(browser(), download_file, file); 1057 CheckDownload(browser(), download_file, file);
1086 1058
1087 // Check state. 1059 // Check state.
1088 EXPECT_EQ(1, browser()->tab_count()); 1060 EXPECT_EQ(1, browser()->tab_count());
1089 CheckDownloadUI(browser(), true, true, download_file); 1061 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
1090 1062
1091 // Open a second tab and wait. 1063 // Open a second tab and wait.
1092 EXPECT_NE(static_cast<TabContentsWrapper*>(NULL), 1064 EXPECT_NE(static_cast<TabContentsWrapper*>(NULL),
1093 browser()->AddSelectedTabWithURL( 1065 browser()->AddSelectedTabWithURL(
1094 GURL(), content::PAGE_TRANSITION_TYPED)); 1066 GURL(), content::PAGE_TRANSITION_TYPED));
1095 EXPECT_EQ(2, browser()->tab_count()); 1067 EXPECT_EQ(2, browser()->tab_count());
1096 CheckDownloadUI(browser(), true, true, download_file); 1068 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
1097 1069
1098 // Hide the download shelf. 1070 // Hide the download shelf.
1099 browser()->window()->GetDownloadShelf()->Close(); 1071 browser()->window()->GetDownloadShelf()->Close();
1100 CheckDownloadUI(browser(), false, false, FilePath()); 1072 CheckDownloadShelfVisibility(browser(), SHELF_HIDDEN);
1101 1073
1102 // Go to the first tab. 1074 // Go to the first tab.
1103 browser()->ActivateTabAt(0, true); 1075 browser()->ActivateTabAt(0, true);
1104 EXPECT_EQ(2, browser()->tab_count()); 1076 EXPECT_EQ(2, browser()->tab_count());
1105 1077
1106 // The download shelf should not be visible. 1078 // The download shelf should not be visible.
1107 CheckDownloadUI(browser(), false, false, FilePath()); 1079 CheckDownloadShelfVisibility(browser(), SHELF_HIDDEN);
1108 } 1080 }
1109 #endif // !OS_CHROMEOS
1110 1081
1111 #if !defined(OS_CHROMEOS) || defined(USE_AURA)
1112 // Check whether the downloads shelf is closed when the downloads tab is 1082 // Check whether the downloads shelf is closed when the downloads tab is
1113 // invoked. 1083 // invoked.
1114 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseShelfOnDownloadsTab) { 1084 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseShelfOnDownloadsTab) {
1115 ASSERT_TRUE(InitialSetup(false)); 1085 ASSERT_TRUE(InitialSetup(false));
1116 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1086 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1117 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1087 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1118 1088
1119 // Download the file and wait. We do not expect the Select File dialog. 1089 // Download the file and wait. We do not expect the Select File dialog.
1120 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); 1090 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG);
1121 1091
1122 // Check state. 1092 // Check state.
1123 EXPECT_EQ(1, browser()->tab_count()); 1093 EXPECT_EQ(1, browser()->tab_count());
1124 CheckDownloadUI(browser(), true, true, file); 1094 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
1125 1095
1126 // Open the downloads tab. 1096 // Open the downloads tab.
1127 browser()->ShowDownloadsTab(); 1097 browser()->ShowDownloadsTab();
1128 // The shelf should now be closed. 1098 // The shelf should now be closed.
1129 CheckDownloadUI(browser(), false, false, FilePath()); 1099 CheckDownloadShelfVisibility(browser(), SHELF_HIDDEN);
1130 } 1100 }
1131 #endif
1132 1101
1133 // UnknownSize and KnownSize are tests which depend on 1102 // UnknownSize and KnownSize are tests which depend on
1134 // URLRequestSlowDownloadJob to serve content in a certain way. Data will be 1103 // URLRequestSlowDownloadJob to serve content in a certain way. Data will be
1135 // sent in two chunks where the first chunk is 35K and the second chunk is 10K. 1104 // sent in two chunks where the first chunk is 35K and the second chunk is 10K.
1136 // The test will first attempt to download a file; but the server will "pause" 1105 // The test will first attempt to download a file; but the server will "pause"
1137 // in the middle until the server receives a second request for 1106 // in the middle until the server receives a second request for
1138 // "download-finish". At that time, the download will finish. 1107 // "download-finish". At that time, the download will finish.
1139 // These tests don't currently test much due to holes in |RunSizeTest()|. See 1108 // These tests don't currently test much due to holes in |RunSizeTest()|. See
1140 // comments in that routine for details. 1109 // comments in that routine for details.
1141 IN_PROC_BROWSER_TEST_F(DownloadTest, UnknownSize) { 1110 IN_PROC_BROWSER_TEST_F(DownloadTest, UnknownSize) {
(...skipping 24 matching lines...) Expand all
1166 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1135 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1167 // Since |incognito| is a separate browser, we have to set it up explicitly. 1136 // Since |incognito| is a separate browser, we have to set it up explicitly.
1168 incognito->profile()->GetPrefs()->SetBoolean(prefs::kPromptForDownload, 1137 incognito->profile()->GetPrefs()->SetBoolean(prefs::kPromptForDownload,
1169 false); 1138 false);
1170 DownloadAndWait(incognito, url, EXPECT_NO_SELECT_DIALOG); 1139 DownloadAndWait(incognito, url, EXPECT_NO_SELECT_DIALOG);
1171 1140
1172 // We should still have 2 windows. 1141 // We should still have 2 windows.
1173 ExpectWindowCountAfterDownload(2); 1142 ExpectWindowCountAfterDownload(2);
1174 1143
1175 // Verify that the download shelf is showing for the Incognito window. 1144 // Verify that the download shelf is showing for the Incognito window.
1176 CheckDownloadUI(incognito, true, true, file); 1145 CheckDownloadShelfVisibility(incognito, SHELF_VISIBLE);
1177 1146
1178 #if !defined(OS_MACOSX) 1147 #if !defined(OS_MACOSX)
1179 // On Mac OS X, the UI window close is delayed until the outermost 1148 // On Mac OS X, the UI window close is delayed until the outermost
1180 // message loop runs. So it isn't possible to get a BROWSER_CLOSED 1149 // message loop runs. So it isn't possible to get a BROWSER_CLOSED
1181 // notification inside of a test. 1150 // notification inside of a test.
1182 ui_test_utils::WindowedNotificationObserver signal( 1151 ui_test_utils::WindowedNotificationObserver signal(
1183 chrome::NOTIFICATION_BROWSER_CLOSED, 1152 chrome::NOTIFICATION_BROWSER_CLOSED,
1184 content::Source<Browser>(incognito)); 1153 content::Source<Browser>(incognito));
1185 #endif 1154 #endif
1186 1155
1187 // Close the Incognito window and don't crash. 1156 // Close the Incognito window and don't crash.
1188 incognito->CloseWindow(); 1157 incognito->CloseWindow();
1189 1158
1190 #if !defined(OS_MACOSX) 1159 #if !defined(OS_MACOSX)
1191 signal.Wait(); 1160 signal.Wait();
1192 ExpectWindowCountAfterDownload(1); 1161 ExpectWindowCountAfterDownload(1);
1193 #endif 1162 #endif
1194 1163
1195 // Verify that the regular window does not have a download shelf. 1164 // Verify that the regular window does not have a download shelf.
1196 // On ChromeOS, the download panel is common to both profiles, so 1165 // On ChromeOS, the download panel is common to both profiles, so
1197 // it is still visible. 1166 // it is still visible.
1198 CheckDownloadUI(browser(), false, true, file); 1167 CheckDownloadShelfVisibility(browser(), SHELF_HIDDEN);
1199 1168
1200 CheckDownload(browser(), file, file); 1169 CheckDownload(browser(), file, file);
1201 } 1170 }
1202 1171
1203 // Navigate to a new background page, but don't download. Confirm that the 1172 // Navigate to a new background page, but don't download. Confirm that the
1204 // download shelf is not visible and that we have two tabs. 1173 // download shelf is not visible and that we have two tabs.
1205 IN_PROC_BROWSER_TEST_F(DownloadTest, DontCloseNewTab1) { 1174 IN_PROC_BROWSER_TEST_F(DownloadTest, DontCloseNewTab1) {
1206 ASSERT_TRUE(InitialSetup(false)); 1175 ASSERT_TRUE(InitialSetup(false));
1207 // Because it's an HTML link, it should open a web page rather than 1176 // Because it's an HTML link, it should open a web page rather than
1208 // downloading. 1177 // downloading.
1209 FilePath file1(FILE_PATH_LITERAL("download-test2.html")); 1178 FilePath file1(FILE_PATH_LITERAL("download-test2.html"));
1210 GURL url(URLRequestMockHTTPJob::GetMockUrl(file1)); 1179 GURL url(URLRequestMockHTTPJob::GetMockUrl(file1));
1211 1180
1212 // Open a web page and wait. 1181 // Open a web page and wait.
1213 ui_test_utils::NavigateToURLWithDisposition( 1182 ui_test_utils::NavigateToURLWithDisposition(
1214 browser(), 1183 browser(),
1215 url, 1184 url,
1216 NEW_BACKGROUND_TAB, 1185 NEW_BACKGROUND_TAB,
1217 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 1186 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
1218 1187
1219 // We should have two tabs now. 1188 // We should have two tabs now.
1220 EXPECT_EQ(2, browser()->tab_count()); 1189 EXPECT_EQ(2, browser()->tab_count());
1221 CheckDownloadUI(browser(), false, false, FilePath()); 1190 CheckDownloadShelfVisibility(browser(), SHELF_HIDDEN);
1222 } 1191 }
1223 1192
1224 // Download a file in a background tab. Verify that the tab is closed 1193 // Download a file in a background tab. Verify that the tab is closed
1225 // automatically, and that the download shelf is visible in the current tab. 1194 // automatically, and that the download shelf is visible in the current tab.
1226 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseNewTab1) { 1195 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseNewTab1) {
1227 ASSERT_TRUE(InitialSetup(false)); 1196 ASSERT_TRUE(InitialSetup(false));
1228 1197
1229 // Download a file in a new background tab and wait. The tab is automatically 1198 // Download a file in a new background tab and wait. The tab is automatically
1230 // closed when the download begins. 1199 // closed when the download begins.
1231 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1200 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1232 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1201 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1233 DownloadAndWaitWithDisposition( 1202 DownloadAndWaitWithDisposition(
1234 browser(), 1203 browser(),
1235 url, 1204 url,
1236 NEW_BACKGROUND_TAB, 1205 NEW_BACKGROUND_TAB,
1237 EXPECT_NO_SELECT_DIALOG, 1206 EXPECT_NO_SELECT_DIALOG,
1238 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 1207 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
1239 1208
1240 // When the download finishes, we should still have one tab. 1209 // When the download finishes, we should still have one tab.
1241 CheckDownloadUI(browser(), true, true, file); 1210 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
1242 EXPECT_EQ(1, browser()->tab_count()); 1211 EXPECT_EQ(1, browser()->tab_count());
1243 1212
1244 CheckDownload(browser(), file, file); 1213 CheckDownload(browser(), file, file);
1245 } 1214 }
1246 1215
1247 // Open a web page in the current tab, then download a file in another tab via 1216 // Open a web page in the current tab, then download a file in another tab via
1248 // a Javascript call. 1217 // a Javascript call.
1249 // Verify that we have 2 tabs, and the download shelf is visible in the current 1218 // Verify that we have 2 tabs, and the download shelf is visible in the current
1250 // tab. 1219 // tab.
1251 // 1220 //
(...skipping 11 matching lines...) Expand all
1263 1232
1264 // Download a file in a new tab and wait (via Javascript). 1233 // Download a file in a new tab and wait (via Javascript).
1265 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1234 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1266 DownloadAndWaitWithDisposition(browser(), 1235 DownloadAndWaitWithDisposition(browser(),
1267 GURL("javascript:openNew()"), 1236 GURL("javascript:openNew()"),
1268 CURRENT_TAB, 1237 CURRENT_TAB,
1269 EXPECT_NO_SELECT_DIALOG, 1238 EXPECT_NO_SELECT_DIALOG,
1270 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); 1239 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB);
1271 1240
1272 // When the download finishes, we should have two tabs. 1241 // When the download finishes, we should have two tabs.
1273 CheckDownloadUI(browser(), true, true, file); 1242 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
1274 EXPECT_EQ(2, browser()->tab_count()); 1243 EXPECT_EQ(2, browser()->tab_count());
1275 1244
1276 CheckDownload(browser(), file, file); 1245 CheckDownload(browser(), file, file);
1277 } 1246 }
1278 1247
1279 // Open a web page in the current tab, open another tab via a Javascript call, 1248 // Open a web page in the current tab, open another tab via a Javascript call,
1280 // then download a file in the new tab. 1249 // then download a file in the new tab.
1281 // Verify that we have 2 tabs, and the download shelf is visible in the current 1250 // Verify that we have 2 tabs, and the download shelf is visible in the current
1282 // tab. 1251 // tab.
1283 // 1252 //
(...skipping 21 matching lines...) Expand all
1305 // Download a file and wait. 1274 // Download a file and wait.
1306 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1275 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1307 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1276 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1308 DownloadAndWaitWithDisposition(browser(), 1277 DownloadAndWaitWithDisposition(browser(),
1309 url, 1278 url,
1310 CURRENT_TAB, 1279 CURRENT_TAB,
1311 EXPECT_NO_SELECT_DIALOG, 1280 EXPECT_NO_SELECT_DIALOG,
1312 ui_test_utils::BROWSER_TEST_NONE); 1281 ui_test_utils::BROWSER_TEST_NONE);
1313 1282
1314 // When the download finishes, we should have two tabs. 1283 // When the download finishes, we should have two tabs.
1315 CheckDownloadUI(browser(), true, true, file); 1284 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
1316 EXPECT_EQ(2, browser()->tab_count()); 1285 EXPECT_EQ(2, browser()->tab_count());
1317 1286
1318 CheckDownload(browser(), file, file); 1287 CheckDownload(browser(), file, file);
1319 } 1288 }
1320 1289
1321 // Open a web page in the current tab, then download a file via Javascript, 1290 // Open a web page in the current tab, then download a file via Javascript,
1322 // which will do so in a temporary tab. 1291 // which will do so in a temporary tab.
1323 // Verify that we have 1 tab, and the download shelf is visible. 1292 // Verify that we have 1 tab, and the download shelf is visible.
1324 // 1293 //
1325 // The download_page3.html page contains an openNew() function that opens a 1294 // The download_page3.html page contains an openNew() function that opens a
(...skipping 12 matching lines...) Expand all
1338 // Download a file and wait. 1307 // Download a file and wait.
1339 // The file to download is "download-test1.lib". 1308 // The file to download is "download-test1.lib".
1340 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1309 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1341 DownloadAndWaitWithDisposition(browser(), 1310 DownloadAndWaitWithDisposition(browser(),
1342 GURL("javascript:openNew()"), 1311 GURL("javascript:openNew()"),
1343 CURRENT_TAB, 1312 CURRENT_TAB,
1344 EXPECT_NO_SELECT_DIALOG, 1313 EXPECT_NO_SELECT_DIALOG,
1345 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); 1314 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB);
1346 1315
1347 // When the download finishes, we should still have one tab. 1316 // When the download finishes, we should still have one tab.
1348 CheckDownloadUI(browser(), true, true, file); 1317 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
1349 EXPECT_EQ(1, browser()->tab_count()); 1318 EXPECT_EQ(1, browser()->tab_count());
1350 1319
1351 CheckDownload(browser(), file, file); 1320 CheckDownload(browser(), file, file);
1352 } 1321 }
1353 1322
1354 // Open a web page in the current tab, then call Javascript via a button to 1323 // Open a web page in the current tab, then call Javascript via a button to
1355 // download a file in a new tab, which is closed automatically when the 1324 // download a file in a new tab, which is closed automatically when the
1356 // download begins. 1325 // download begins.
1357 // Verify that we have 1 tab, and the download shelf is visible. 1326 // Verify that we have 1 tab, and the download shelf is visible.
1358 // 1327 //
(...skipping 14 matching lines...) Expand all
1373 // The file to download is "download-test1.lib". 1342 // The file to download is "download-test1.lib".
1374 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1343 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1375 DownloadAndWaitWithDisposition( 1344 DownloadAndWaitWithDisposition(
1376 browser(), 1345 browser(),
1377 GURL("javascript:document.getElementById('form').submit()"), 1346 GURL("javascript:document.getElementById('form').submit()"),
1378 CURRENT_TAB, 1347 CURRENT_TAB,
1379 EXPECT_NO_SELECT_DIALOG, 1348 EXPECT_NO_SELECT_DIALOG,
1380 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); 1349 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB);
1381 1350
1382 // When the download finishes, we should still have one tab. 1351 // When the download finishes, we should still have one tab.
1383 CheckDownloadUI(browser(), true, true, file); 1352 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
1384 EXPECT_EQ(1, browser()->tab_count()); 1353 EXPECT_EQ(1, browser()->tab_count());
1385 1354
1386 CheckDownload(browser(), file, file); 1355 CheckDownload(browser(), file, file);
1387 } 1356 }
1388 1357
1389 // Download a file in a new window. 1358 // Download a file in a new window.
1390 // Verify that we have 2 windows, and the download shelf is not visible in the 1359 // Verify that we have 2 windows, and the download shelf is not visible in the
1391 // first window, but is visible in the second window. 1360 // first window, but is visible in the second window.
1392 // Close the new window. 1361 // Close the new window.
1393 // Verify that we have 1 window, and the download shelf is not visible. 1362 // Verify that we have 1 window, and the download shelf is not visible.
(...skipping 13 matching lines...) Expand all
1407 url, 1376 url,
1408 NEW_WINDOW, 1377 NEW_WINDOW,
1409 EXPECT_NO_SELECT_DIALOG, 1378 EXPECT_NO_SELECT_DIALOG,
1410 ui_test_utils::BROWSER_TEST_NONE); 1379 ui_test_utils::BROWSER_TEST_NONE);
1411 1380
1412 // When the download finishes, the download shelf SHOULD NOT be visible in 1381 // When the download finishes, the download shelf SHOULD NOT be visible in
1413 // the first window. 1382 // the first window.
1414 ExpectWindowCountAfterDownload(2); 1383 ExpectWindowCountAfterDownload(2);
1415 EXPECT_EQ(1, browser()->tab_count()); 1384 EXPECT_EQ(1, browser()->tab_count());
1416 // Download shelf should close. Download panel stays open on ChromeOS. 1385 // Download shelf should close. Download panel stays open on ChromeOS.
1417 CheckDownloadUI(browser(), false, true, file); 1386 CheckDownloadShelfVisibility(browser(), SHELF_HIDDEN);
1418 1387
1419 // The download shelf SHOULD be visible in the second window. 1388 // The download shelf SHOULD be visible in the second window.
1420 std::set<Browser*> original_browsers; 1389 std::set<Browser*> original_browsers;
1421 original_browsers.insert(browser()); 1390 original_browsers.insert(browser());
1422 Browser* download_browser = 1391 Browser* download_browser =
1423 ui_test_utils::GetBrowserNotInSet(original_browsers); 1392 ui_test_utils::GetBrowserNotInSet(original_browsers);
1424 ASSERT_TRUE(download_browser != NULL); 1393 ASSERT_TRUE(download_browser != NULL);
1425 EXPECT_NE(download_browser, browser()); 1394 EXPECT_NE(download_browser, browser());
1426 EXPECT_EQ(1, download_browser->tab_count()); 1395 EXPECT_EQ(1, download_browser->tab_count());
1427 CheckDownloadUI(download_browser, true, true, file); 1396 CheckDownloadShelfVisibility(download_browser, SHELF_VISIBLE);
1428 1397
1429 #if !defined(OS_MACOSX) 1398 #if !defined(OS_MACOSX)
1430 // On Mac OS X, the UI window close is delayed until the outermost 1399 // On Mac OS X, the UI window close is delayed until the outermost
1431 // message loop runs. So it isn't possible to get a BROWSER_CLOSED 1400 // message loop runs. So it isn't possible to get a BROWSER_CLOSED
1432 // notification inside of a test. 1401 // notification inside of a test.
1433 ui_test_utils::WindowedNotificationObserver signal( 1402 ui_test_utils::WindowedNotificationObserver signal(
1434 chrome::NOTIFICATION_BROWSER_CLOSED, 1403 chrome::NOTIFICATION_BROWSER_CLOSED,
1435 content::Source<Browser>(download_browser)); 1404 content::Source<Browser>(download_browser));
1436 #endif 1405 #endif
1437 1406
1438 // Close the new window. 1407 // Close the new window.
1439 download_browser->CloseWindow(); 1408 download_browser->CloseWindow();
1440 1409
1441 #if !defined(OS_MACOSX) 1410 #if !defined(OS_MACOSX)
1442 signal.Wait(); 1411 signal.Wait();
1443 EXPECT_EQ(first_browser, browser()); 1412 EXPECT_EQ(first_browser, browser());
1444 ExpectWindowCountAfterDownload(1); 1413 ExpectWindowCountAfterDownload(1);
1445 #endif 1414 #endif
1446 1415
1447 EXPECT_EQ(1, browser()->tab_count()); 1416 EXPECT_EQ(1, browser()->tab_count());
1448 // Download shelf should close. Download panel stays open on ChromeOS. 1417 // Download shelf should close. Download panel stays open on ChromeOS.
1449 CheckDownloadUI(browser(), false, true, file); 1418 CheckDownloadShelfVisibility(browser(), SHELF_HIDDEN);
1450 1419
1451 CheckDownload(browser(), file, file); 1420 CheckDownload(browser(), file, file);
1452 } 1421 }
1453 1422
1454 // Check that downloading multiple (in this case, 2) files does not result in 1423 // Check that downloading multiple (in this case, 2) files does not result in
1455 // corrupted files. 1424 // corrupted files.
1456 IN_PROC_BROWSER_TEST_F(DownloadTest, MultiDownload) { 1425 IN_PROC_BROWSER_TEST_F(DownloadTest, MultiDownload) {
1457 ASSERT_TRUE(InitialSetup(false)); 1426 ASSERT_TRUE(InitialSetup(false));
1458 EXPECT_EQ(1, browser()->tab_count()); 1427 EXPECT_EQ(1, browser()->tab_count());
1459 1428
1460 // Create a download, wait until it's started, and confirm 1429 // Create a download, wait until it's started, and confirm
1461 // we're in the expected state. 1430 // we're in the expected state.
1462 scoped_ptr<DownloadTestObserver> observer1( 1431 scoped_ptr<DownloadTestObserver> observer1(
1463 CreateInProgressWaiter(browser(), 1)); 1432 CreateInProgressWaiter(browser(), 1));
1464 ui_test_utils::NavigateToURL( 1433 ui_test_utils::NavigateToURL(
1465 browser(), GURL(URLRequestSlowDownloadJob::kUnknownSizeUrl)); 1434 browser(), GURL(URLRequestSlowDownloadJob::kUnknownSizeUrl));
1466 observer1->WaitForFinished(); 1435 observer1->WaitForFinished();
1467 1436
1468 std::vector<DownloadItem*> downloads; 1437 std::vector<DownloadItem*> downloads;
1469 browser()->profile()->GetDownloadManager()->SearchDownloads( 1438 browser()->profile()->GetDownloadManager()->SearchDownloads(
1470 string16(), &downloads); 1439 string16(), &downloads);
1471 ASSERT_EQ(1u, downloads.size()); 1440 ASSERT_EQ(1u, downloads.size());
1472 ASSERT_EQ(DownloadItem::IN_PROGRESS, downloads[0]->GetState()); 1441 ASSERT_EQ(DownloadItem::IN_PROGRESS, downloads[0]->GetState());
1473 CheckDownloadUI(browser(), true, true, FilePath()); 1442 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
1474 DownloadItem* download1 = downloads[0]; // The only download. 1443 DownloadItem* download1 = downloads[0]; // The only download.
1475 1444
1476 // Start the second download and wait until it's done. 1445 // Start the second download and wait until it's done.
1477 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1446 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1478 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1447 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1479 // Download the file and wait. We do not expect the Select File dialog. 1448 // Download the file and wait. We do not expect the Select File dialog.
1480 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); 1449 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG);
1481 1450
1482 // Should now have 2 items on the download shelf. 1451 // Should now have 2 items on the download shelf.
1483 downloads.clear(); 1452 downloads.clear();
1484 browser()->profile()->GetDownloadManager()->SearchDownloads( 1453 browser()->profile()->GetDownloadManager()->SearchDownloads(
1485 string16(), &downloads); 1454 string16(), &downloads);
1486 ASSERT_EQ(2u, downloads.size()); 1455 ASSERT_EQ(2u, downloads.size());
1487 // We don't know the order of the downloads. 1456 // We don't know the order of the downloads.
1488 DownloadItem* download2 = downloads[(download1 == downloads[0]) ? 1 : 0]; 1457 DownloadItem* download2 = downloads[(download1 == downloads[0]) ? 1 : 0];
1489 1458
1490 ASSERT_EQ(DownloadItem::IN_PROGRESS, download1->GetState()); 1459 ASSERT_EQ(DownloadItem::IN_PROGRESS, download1->GetState());
1491 ASSERT_EQ(DownloadItem::COMPLETE, download2->GetState()); 1460 ASSERT_EQ(DownloadItem::COMPLETE, download2->GetState());
1492 // The download shelf should be open. 1461 // The download shelf should be open.
1493 CheckDownloadUI(browser(), true, true, FilePath()); 1462 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
1494 1463
1495 // Allow the first request to finish. We do this by loading a third URL 1464 // Allow the first request to finish. We do this by loading a third URL
1496 // in a separate tab. 1465 // in a separate tab.
1497 scoped_ptr<DownloadTestObserver> observer2(CreateWaiter(browser(), 1)); 1466 scoped_ptr<DownloadTestObserver> observer2(CreateWaiter(browser(), 1));
1498 GURL finish_url(URLRequestSlowDownloadJob::kFinishDownloadUrl); 1467 GURL finish_url(URLRequestSlowDownloadJob::kFinishDownloadUrl);
1499 ui_test_utils::NavigateToURLWithDisposition( 1468 ui_test_utils::NavigateToURLWithDisposition(
1500 browser(), 1469 browser(),
1501 finish_url, 1470 finish_url,
1502 NEW_FOREGROUND_TAB, 1471 NEW_FOREGROUND_TAB,
1503 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 1472 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
1504 observer2->WaitForFinished(); // Wait for the third request. 1473 observer2->WaitForFinished(); // Wait for the third request.
1505 EXPECT_EQ(1u, observer2->NumDownloadsSeenInState(DownloadItem::COMPLETE)); 1474 EXPECT_EQ(1u, observer2->NumDownloadsSeenInState(DownloadItem::COMPLETE));
1506 1475
1507 // Get the important info from other threads and check it. 1476 // Get the important info from other threads and check it.
1508 EXPECT_TRUE(EnsureNoPendingDownloads()); 1477 EXPECT_TRUE(EnsureNoPendingDownloads());
1509 1478
1510 CheckDownloadUI(browser(), true, true, FilePath()); 1479 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
1511 1480
1512 // The |DownloadItem|s should now be done and have the final file names. 1481 // The |DownloadItem|s should now be done and have the final file names.
1513 // Verify that the files have the expected data and size. 1482 // Verify that the files have the expected data and size.
1514 // |file1| should be full of '*'s, and |file2| should be the same as the 1483 // |file1| should be full of '*'s, and |file2| should be the same as the
1515 // source file. 1484 // source file.
1516 FilePath file1(download1->GetFullPath()); 1485 FilePath file1(download1->GetFullPath());
1517 size_t file_size1 = URLRequestSlowDownloadJob::kFirstDownloadSize + 1486 size_t file_size1 = URLRequestSlowDownloadJob::kFirstDownloadSize +
1518 URLRequestSlowDownloadJob::kSecondDownloadSize; 1487 URLRequestSlowDownloadJob::kSecondDownloadSize;
1519 std::string expected_contents(file_size1, '*'); 1488 std::string expected_contents(file_size1, '*');
1520 ASSERT_TRUE(VerifyFile(file1, expected_contents, file_size1)); 1489 ASSERT_TRUE(VerifyFile(file1, expected_contents, file_size1));
(...skipping 28 matching lines...) Expand all
1549 CreateInProgressWaiter(browser(), 1)); 1518 CreateInProgressWaiter(browser(), 1));
1550 ui_test_utils::NavigateToURL( 1519 ui_test_utils::NavigateToURL(
1551 browser(), GURL(URLRequestSlowDownloadJob::kUnknownSizeUrl)); 1520 browser(), GURL(URLRequestSlowDownloadJob::kUnknownSizeUrl));
1552 observer->WaitForFinished(); 1521 observer->WaitForFinished();
1553 1522
1554 std::vector<DownloadItem*> downloads; 1523 std::vector<DownloadItem*> downloads;
1555 DownloadManagerForBrowser(browser())->SearchDownloads( 1524 DownloadManagerForBrowser(browser())->SearchDownloads(
1556 string16(), &downloads); 1525 string16(), &downloads);
1557 ASSERT_EQ(1u, downloads.size()); 1526 ASSERT_EQ(1u, downloads.size());
1558 ASSERT_EQ(DownloadItem::IN_PROGRESS, downloads[0]->GetState()); 1527 ASSERT_EQ(DownloadItem::IN_PROGRESS, downloads[0]->GetState());
1559 CheckDownloadUI(browser(), true, true, FilePath()); 1528 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
1560 1529
1561 // Cancel the download and wait for download system quiesce. 1530 // Cancel the download and wait for download system quiesce.
1562 downloads[0]->Delete(DownloadItem::DELETE_DUE_TO_USER_DISCARD); 1531 downloads[0]->Delete(DownloadItem::DELETE_DUE_TO_USER_DISCARD);
1563 scoped_refptr<DownloadTestFlushObserver> flush_observer( 1532 scoped_refptr<DownloadTestFlushObserver> flush_observer(
1564 new DownloadTestFlushObserver( 1533 new DownloadTestFlushObserver(
1565 DownloadManagerForBrowser(browser()))); 1534 DownloadManagerForBrowser(browser())));
1566 flush_observer->WaitForFlush(); 1535 flush_observer->WaitForFlush();
1567 1536
1568 // Get the important info from other threads and check it. 1537 // Get the important info from other threads and check it.
1569 EXPECT_TRUE(EnsureNoPendingDownloads()); 1538 EXPECT_TRUE(EnsureNoPendingDownloads());
1570 1539
1571 // Using "DownloadItem::Remove" follows the discard dangerous download path, 1540 // Using "DownloadItem::Remove" follows the discard dangerous download path,
1572 // which completely removes the browser from the shelf and closes the shelf 1541 // which completely removes the browser from the shelf and closes the shelf
1573 // if it was there. Download panel stays open on ChromeOS. 1542 // if it was there. Download panel stays open on ChromeOS.
1574 CheckDownloadUI(browser(), false, true, FilePath()); 1543 CheckDownloadShelfVisibility(browser(), SHELF_HIDDEN);
1575 } 1544 }
1576 1545
1577 // Confirm a download makes it into the history properly. 1546 // Confirm a download makes it into the history properly.
1578 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadHistoryCheck) { 1547 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadHistoryCheck) {
1579 ASSERT_TRUE(InitialSetup(false)); 1548 ASSERT_TRUE(InitialSetup(false));
1580 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1549 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1581 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1550 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1582 FilePath origin_file(OriginFile(file)); 1551 FilePath origin_file(OriginFile(file));
1583 int64 origin_size; 1552 int64 origin_size;
1584 file_util::GetFileSize(origin_file, &origin_size); 1553 file_util::GetFileSize(origin_file, &origin_size);
1585 1554
1586 // Download the file and wait. We do not expect the Select File dialog. 1555 // Download the file and wait. We do not expect the Select File dialog.
1587 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); 1556 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG);
1588 1557
1589 // Get details of what downloads have just happened. 1558 // Get details of what downloads have just happened.
1590 std::vector<DownloadItem*> downloads; 1559 std::vector<DownloadItem*> downloads;
1591 GetDownloads(browser(), &downloads); 1560 GetDownloads(browser(), &downloads);
1592 ASSERT_EQ(1u, downloads.size()); 1561 ASSERT_EQ(1u, downloads.size());
1593 int64 db_handle = downloads[0]->GetDbHandle(); 1562 int64 db_handle = downloads[0]->GetDbHandle();
1594 1563
1595 // Check state. 1564 // Check state.
1596 EXPECT_EQ(1, browser()->tab_count()); 1565 EXPECT_EQ(1, browser()->tab_count());
1597 CheckDownload(browser(), file, file); 1566 CheckDownload(browser(), file, file);
1598 CheckDownloadUI(browser(), true, true, file); 1567 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
1599 1568
1600 // Check history results. 1569 // Check history results.
1601 DownloadsHistoryDataCollector history_collector( 1570 DownloadsHistoryDataCollector history_collector(
1602 db_handle, 1571 db_handle,
1603 DownloadManagerForBrowser(browser())); 1572 DownloadManagerForBrowser(browser()));
1604 DownloadPersistentStoreInfo info; 1573 DownloadPersistentStoreInfo info;
1605 EXPECT_TRUE(history_collector.GetDownloadsHistoryEntry(&info)) << db_handle; 1574 EXPECT_TRUE(history_collector.GetDownloadsHistoryEntry(&info)) << db_handle;
1606 EXPECT_EQ(file, info.path.BaseName()); 1575 EXPECT_EQ(file, info.path.BaseName());
1607 EXPECT_EQ(url, info.url); 1576 EXPECT_EQ(url, info.url);
1608 // Ignore start_time. 1577 // Ignore start_time.
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
1711 DownloadManagerForBrowser(browser())->SearchDownloads( 1680 DownloadManagerForBrowser(browser())->SearchDownloads(
1712 string16(), &downloads); 1681 string16(), &downloads);
1713 ASSERT_EQ(1u, downloads.size()); 1682 ASSERT_EQ(1u, downloads.size());
1714 EXPECT_EQ(DownloadItem::COMPLETE, downloads[0]->GetState()); 1683 EXPECT_EQ(DownloadItem::COMPLETE, downloads[0]->GetState());
1715 EXPECT_TRUE(downloads[0]->GetOpened()); 1684 EXPECT_TRUE(downloads[0]->GetOpened());
1716 1685
1717 // As long as we're here, confirmed everything else is good. 1686 // As long as we're here, confirmed everything else is good.
1718 EXPECT_EQ(1, browser()->tab_count()); 1687 EXPECT_EQ(1, browser()->tab_count());
1719 CheckDownload(browser(), file, file); 1688 CheckDownload(browser(), file, file);
1720 // Download shelf should close. Download panel stays open on ChromeOS. 1689 // Download shelf should close. Download panel stays open on ChromeOS.
1721 CheckDownloadUI(browser(), false, true, FilePath()); 1690 CheckDownloadShelfVisibility(browser(), SHELF_HIDDEN);
1722 } 1691 }
1723 1692
1724 // Download an extension. Expect a dangerous download warning. 1693 // Download an extension. Expect a dangerous download warning.
1725 // Deny the download. 1694 // Deny the download.
1726 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxDenyInstall) { 1695 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxDenyInstall) {
1727 ASSERT_TRUE(InitialSetup(false)); 1696 ASSERT_TRUE(InitialSetup(false));
1728 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kGoodCrxPath)); 1697 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kGoodCrxPath));
1729 1698
1730 scoped_ptr<DownloadTestObserver> observer( 1699 scoped_ptr<DownloadTestObserver> observer(
1731 DangerousDownloadWaiter( 1700 DangerousDownloadWaiter(
1732 browser(), 1, 1701 browser(), 1,
1733 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_DENY)); 1702 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_DENY));
1734 ui_test_utils::NavigateToURL(browser(), extension_url); 1703 ui_test_utils::NavigateToURL(browser(), extension_url);
1735 1704
1736 observer->WaitForFinished(); 1705 observer->WaitForFinished();
1737 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::CANCELLED)); 1706 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::CANCELLED));
1738 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); 1707 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen());
1739 1708
1740 // Download shelf should close. Download panel stays open on ChromeOS. 1709 // Download shelf should close. Download panel stays open on ChromeOS.
1741 CheckDownloadUI(browser(), false, true, FilePath()); 1710 CheckDownloadShelfVisibility(browser(), SHELF_HIDDEN);
1742 1711
1743 // Check that the CRX is not installed. 1712 // Check that the CRX is not installed.
1744 ExtensionService* extension_service = 1713 ExtensionService* extension_service =
1745 browser()->profile()->GetExtensionService(); 1714 browser()->profile()->GetExtensionService();
1746 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false)); 1715 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false));
1747 } 1716 }
1748 1717
1749 // Download an extension. Expect a dangerous download warning. 1718 // Download an extension. Expect a dangerous download warning.
1750 // Allow the download, deny the install. 1719 // Allow the download, deny the install.
1751 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInstallDenysPermissions) { 1720 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInstallDenysPermissions) {
(...skipping 10 matching lines...) Expand all
1762 browser(), 1, 1731 browser(), 1,
1763 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); 1732 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT));
1764 ui_test_utils::NavigateToURL(browser(), extension_url); 1733 ui_test_utils::NavigateToURL(browser(), extension_url);
1765 1734
1766 observer->WaitForFinished(); 1735 observer->WaitForFinished();
1767 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); 1736 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE));
1768 CheckDownloadStates(1, DownloadItem::COMPLETE); 1737 CheckDownloadStates(1, DownloadItem::COMPLETE);
1769 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); 1738 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen());
1770 1739
1771 // Download shelf should close. Download panel stays open on ChromeOS. 1740 // Download shelf should close. Download panel stays open on ChromeOS.
1772 CheckDownloadUI(browser(), false, true, FilePath()); 1741 CheckDownloadShelfVisibility(browser(), SHELF_HIDDEN);
1773 1742
1774 // Check that the extension was not installed. 1743 // Check that the extension was not installed.
1775 ExtensionService* extension_service = 1744 ExtensionService* extension_service =
1776 browser()->profile()->GetExtensionService(); 1745 browser()->profile()->GetExtensionService();
1777 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false)); 1746 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false));
1778 } 1747 }
1779 1748
1780 // Download an extension. Expect a dangerous download warning. 1749 // Download an extension. Expect a dangerous download warning.
1781 // Allow the download, and the install. 1750 // Allow the download, and the install.
1782 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInstallAcceptPermissions) { 1751 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInstallAcceptPermissions) {
(...skipping 10 matching lines...) Expand all
1793 browser(), 1, 1762 browser(), 1,
1794 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); 1763 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT));
1795 ui_test_utils::NavigateToURL(browser(), extension_url); 1764 ui_test_utils::NavigateToURL(browser(), extension_url);
1796 1765
1797 observer->WaitForFinished(); 1766 observer->WaitForFinished();
1798 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); 1767 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE));
1799 CheckDownloadStates(1, DownloadItem::COMPLETE); 1768 CheckDownloadStates(1, DownloadItem::COMPLETE);
1800 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); 1769 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen());
1801 1770
1802 // Download shelf should close. Download panel stays open on ChromeOS. 1771 // Download shelf should close. Download panel stays open on ChromeOS.
1803 CheckDownloadUI(browser(), false, true, FilePath()); 1772 CheckDownloadShelfVisibility(browser(), SHELF_HIDDEN);
1804 1773
1805 // Check that the extension was installed. 1774 // Check that the extension was installed.
1806 ExtensionService* extension_service = 1775 ExtensionService* extension_service =
1807 browser()->profile()->GetExtensionService(); 1776 browser()->profile()->GetExtensionService();
1808 ASSERT_TRUE(extension_service->GetExtensionById(kGoodCrxId, false)); 1777 ASSERT_TRUE(extension_service->GetExtensionById(kGoodCrxId, false));
1809 } 1778 }
1810 1779
1811 // Test installing a CRX that fails integrity checks. 1780 // Test installing a CRX that fails integrity checks.
1812 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInvalid) { 1781 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInvalid) {
1813 ASSERT_TRUE(InitialSetup(false)); 1782 ASSERT_TRUE(InitialSetup(false));
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1851 browser(), 1, 1820 browser(), 1,
1852 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); 1821 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT));
1853 ui_test_utils::NavigateToURL(browser(), extension_url); 1822 ui_test_utils::NavigateToURL(browser(), extension_url);
1854 1823
1855 observer->WaitForFinished(); 1824 observer->WaitForFinished();
1856 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); 1825 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE));
1857 CheckDownloadStates(1, DownloadItem::COMPLETE); 1826 CheckDownloadStates(1, DownloadItem::COMPLETE);
1858 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); 1827 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen());
1859 1828
1860 // Download shelf should close. Download panel stays open on ChromeOS. 1829 // Download shelf should close. Download panel stays open on ChromeOS.
1861 CheckDownloadUI(browser(), false, true, FilePath()); 1830 CheckDownloadShelfVisibility(browser(), SHELF_HIDDEN);
1862 1831
1863 // Check that the extension was installed. 1832 // Check that the extension was installed.
1864 ExtensionService* extension_service = 1833 ExtensionService* extension_service =
1865 browser()->profile()->GetExtensionService(); 1834 browser()->profile()->GetExtensionService();
1866 ASSERT_TRUE(extension_service->GetExtensionById(kLargeThemeCrxId, false)); 1835 ASSERT_TRUE(extension_service->GetExtensionById(kLargeThemeCrxId, false));
1867 } 1836 }
1868 1837
1869 // Sort download items by db_handle. 1838 // Sort download items by db_handle.
1870 static bool DownloadItemSorter(DownloadItem* d1, DownloadItem* d2) { 1839 static bool DownloadItemSorter(DownloadItem* d1, DownloadItem* d2) {
1871 return d1->GetDbHandle() < d2->GetDbHandle(); 1840 return d1->GetDbHandle() < d2->GetDbHandle();
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
2021 url, GURL(""), "", false, -1, save_info, web_contents, 1990 url, GURL(""), "", false, -1, save_info, web_contents,
2022 DownloadManager::OnStartedCallback()); 1991 DownloadManager::OnStartedCallback());
2023 observer->WaitForFinished(); 1992 observer->WaitForFinished();
2024 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); 1993 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE));
2025 CheckDownloadStates(1, DownloadItem::COMPLETE); 1994 CheckDownloadStates(1, DownloadItem::COMPLETE);
2026 EXPECT_TRUE(observer->select_file_dialog_seen()); 1995 EXPECT_TRUE(observer->select_file_dialog_seen());
2027 1996
2028 // Check state. 1997 // Check state.
2029 EXPECT_EQ(1, browser()->tab_count()); 1998 EXPECT_EQ(1, browser()->tab_count());
2030 ASSERT_TRUE(CheckDownload(browser(), file, file)); 1999 ASSERT_TRUE(CheckDownload(browser(), file, file));
2031 CheckDownloadUI(browser(), true, true, file); 2000 CheckDownloadShelfVisibility(browser(), SHELF_VISIBLE);
2032 } 2001 }
2033 2002
2034 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrlToPath) { 2003 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrlToPath) {
2035 ASSERT_TRUE(InitialSetup(false)); 2004 ASSERT_TRUE(InitialSetup(false));
2036 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 2005 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
2037 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 2006 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
2038 2007
2039 WebContents* web_contents = browser()->GetSelectedWebContents(); 2008 WebContents* web_contents = browser()->GetSelectedWebContents();
2040 ASSERT_TRUE(web_contents); 2009 ASSERT_TRUE(web_contents);
2041 2010
(...skipping 11 matching lines...) Expand all
2053 observer->WaitForFinished(); 2022 observer->WaitForFinished();
2054 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); 2023 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE));
2055 2024
2056 // Check state. 2025 // Check state.
2057 EXPECT_EQ(1, browser()->tab_count()); 2026 EXPECT_EQ(1, browser()->tab_count());
2058 ASSERT_TRUE(CheckDownloadFullPaths(browser(), 2027 ASSERT_TRUE(CheckDownloadFullPaths(browser(),
2059 target_file_full_path, 2028 target_file_full_path,
2060 OriginFile(file))); 2029 OriginFile(file)));
2061 2030
2062 // Temporary downloads won't be visible. 2031 // Temporary downloads won't be visible.
2063 CheckDownloadUI(browser(), false, false, file); 2032 CheckDownloadShelfVisibility(browser(), SHELF_HIDDEN);
2064 } 2033 }
2065 2034
2066 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaGet) { 2035 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaGet) {
2067 // Do initial setup. 2036 // Do initial setup.
2068 ASSERT_TRUE(InitialSetup(false)); 2037 ASSERT_TRUE(InitialSetup(false));
2069 ASSERT_TRUE(test_server()->Start()); 2038 ASSERT_TRUE(test_server()->Start());
2070 NullSelectFile(browser()); 2039 NullSelectFile(browser());
2071 std::vector<DownloadItem*> download_items; 2040 std::vector<DownloadItem*> download_items;
2072 GetDownloads(browser(), &download_items); 2041 GetDownloads(browser(), &download_items);
2073 ASSERT_TRUE(download_items.empty()); 2042 ASSERT_TRUE(download_items.empty());
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after
2539 downloads.clear(); 2508 downloads.clear();
2540 GetDownloads(browser(), &downloads); 2509 GetDownloads(browser(), &downloads);
2541 EXPECT_EQ(0u, downloads.size()); 2510 EXPECT_EQ(0u, downloads.size());
2542 2511
2543 if (creation_observer->succeeded()) { 2512 if (creation_observer->succeeded()) {
2544 // Wait until the download is done. We don't care how it's finished. 2513 // Wait until the download is done. We don't care how it's finished.
2545 backup_observer.WaitForFinished(); 2514 backup_observer.WaitForFinished();
2546 } 2515 }
2547 DownloadManagerForBrowser(browser())->RemoveAllDownloads(); 2516 DownloadManagerForBrowser(browser())->RemoveAllDownloads();
2548 } 2517 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698