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

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

Issue 10237010: Used scoped temp dir for download files in DownloadErrorsFile Test. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merged to LKGR. Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 }; 266 };
267 267
268 DownloadTest() { 268 DownloadTest() {
269 EnableDOMAutomation(); 269 EnableDOMAutomation();
270 } 270 }
271 271
272 void SetUpOnMainThread() OVERRIDE { 272 void SetUpOnMainThread() OVERRIDE {
273 BrowserThread::PostTask( 273 BrowserThread::PostTask(
274 BrowserThread::IO, FROM_HERE, 274 BrowserThread::IO, FROM_HERE,
275 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true)); 275 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true));
276 ASSERT_TRUE(InitialSetup());
276 } 277 }
277 278
278 // Returning false indicates a failure of the setup, and should be asserted 279 // Returning false indicates a failure of the setup, and should be asserted
279 // in the caller. 280 // in the caller.
280 virtual bool InitialSetup(bool prompt_for_download) { 281 virtual bool InitialSetup() {
281 bool have_test_dir = PathService::Get(chrome::DIR_TEST_DATA, &test_dir_); 282 bool have_test_dir = PathService::Get(chrome::DIR_TEST_DATA, &test_dir_);
282 EXPECT_TRUE(have_test_dir); 283 EXPECT_TRUE(have_test_dir);
283 if (!have_test_dir) 284 if (!have_test_dir)
284 return false; 285 return false;
285 286
286 // Sanity check default values for window / tab count and shelf visibility. 287 // Sanity check default values for window / tab count and shelf visibility.
287 int window_count = BrowserList::size(); 288 int window_count = BrowserList::size();
288 EXPECT_EQ(1, window_count); 289 EXPECT_EQ(1, window_count);
289 EXPECT_EQ(1, browser()->tab_count()); 290 EXPECT_EQ(1, browser()->tab_count());
290 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); 291 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible());
291 292
292 // Set up the temporary download folder. 293 // Set up the temporary download folder.
293 bool created_downloads_dir = CreateAndSetDownloadsDirectory(browser()); 294 bool created_downloads_dir = CreateAndSetDownloadsDirectory(browser());
294 EXPECT_TRUE(created_downloads_dir); 295 EXPECT_TRUE(created_downloads_dir);
295 if (!created_downloads_dir) 296 if (!created_downloads_dir)
296 return false; 297 return false;
297 browser()->profile()->GetPrefs()->SetBoolean(prefs::kPromptForDownload, 298 browser()->profile()->GetPrefs()->SetBoolean(
298 prompt_for_download); 299 prefs::kPromptForDownload, false);
299 300
300 DownloadManager* manager = DownloadManagerForBrowser(browser()); 301 DownloadManager* manager = DownloadManagerForBrowser(browser());
301 DownloadPrefs::FromDownloadManager(manager)->ResetAutoOpen(); 302 DownloadPrefs::FromDownloadManager(manager)->ResetAutoOpen();
302 manager->RemoveAllDownloads(); 303 manager->RemoveAllDownloads();
303 304
304 return true; 305 return true;
305 } 306 }
306 307
307 protected: 308 protected:
308 309
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 bool downloaded_file_deleted = 486 bool downloaded_file_deleted =
486 file_util::DieFileDie(downloaded_file, false); 487 file_util::DieFileDie(downloaded_file, false);
487 EXPECT_TRUE(downloaded_file_deleted); 488 EXPECT_TRUE(downloaded_file_deleted);
488 return downloaded_file_deleted; 489 return downloaded_file_deleted;
489 } 490 }
490 491
491 bool RunSizeTest(Browser* browser, 492 bool RunSizeTest(Browser* browser,
492 SizeTestType type, 493 SizeTestType type,
493 const std::string& partial_indication, 494 const std::string& partial_indication,
494 const std::string& total_indication) { 495 const std::string& total_indication) {
495 if (!InitialSetup(false))
496 return false;
497
498 EXPECT_TRUE(type == SIZE_TEST_TYPE_UNKNOWN || type == SIZE_TEST_TYPE_KNOWN); 496 EXPECT_TRUE(type == SIZE_TEST_TYPE_UNKNOWN || type == SIZE_TEST_TYPE_KNOWN);
499 if (type != SIZE_TEST_TYPE_KNOWN && type != SIZE_TEST_TYPE_UNKNOWN) 497 if (type != SIZE_TEST_TYPE_KNOWN && type != SIZE_TEST_TYPE_UNKNOWN)
500 return false; 498 return false;
501 GURL url(type == SIZE_TEST_TYPE_KNOWN ? 499 GURL url(type == SIZE_TEST_TYPE_KNOWN ?
502 URLRequestSlowDownloadJob::kKnownSizeUrl : 500 URLRequestSlowDownloadJob::kKnownSizeUrl :
503 URLRequestSlowDownloadJob::kUnknownSizeUrl); 501 URLRequestSlowDownloadJob::kUnknownSizeUrl);
504 502
505 // TODO(ahendrickson) -- |expected_title_in_progress| and 503 // TODO(ahendrickson) -- |expected_title_in_progress| and
506 // |expected_title_finished| need to be checked. 504 // |expected_title_finished| need to be checked.
507 FilePath filename; 505 FilePath filename;
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 info[i].error_info.url = url.spec(); 804 info[i].error_info.url = url.spec();
807 805
808 DownloadInsertFilesErrorCheckErrorsLoopBody(injector, info[i], i); 806 DownloadInsertFilesErrorCheckErrorsLoopBody(injector, info[i], i);
809 } 807 }
810 } 808 }
811 809
812 // Attempts to download a file to a read-only folder, based on information 810 // Attempts to download a file to a read-only folder, based on information
813 // in |download_info|. 811 // in |download_info|.
814 void DownloadFilesToReadonlyFolder(size_t count, 812 void DownloadFilesToReadonlyFolder(size_t count,
815 DownloadInfo* download_info) { 813 DownloadInfo* download_info) {
816 ASSERT_TRUE(InitialSetup(false)); // Creates temporary download folder.
817
818 DownloadFilesCheckErrorsSetup(); 814 DownloadFilesCheckErrorsSetup();
819 815
820 // Make the test folder unwritable. 816 // Make the test folder unwritable.
821 FilePath destination_folder = GetDownloadDirectory(browser()); 817 FilePath destination_folder = GetDownloadDirectory(browser());
822 DVLOG(1) << " " << __FUNCTION__ << "()" 818 DVLOG(1) << " " << __FUNCTION__ << "()"
823 << " folder = '" << destination_folder.value() << "'"; 819 << " folder = '" << destination_folder.value() << "'";
824 file_util::PermissionRestorer permission_restorer(destination_folder); 820 file_util::PermissionRestorer permission_restorer(destination_folder);
825 EXPECT_TRUE(file_util::MakeFileUnwritable(destination_folder)); 821 EXPECT_TRUE(file_util::MakeFileUnwritable(destination_folder));
826 822
827 for (size_t i = 0; i < count; ++i) { 823 for (size_t i = 0; i < count; ++i) {
(...skipping 26 matching lines...) Expand all
854 }; 850 };
855 851
856 // NOTES: 852 // NOTES:
857 // 853 //
858 // Files for these tests are found in DIR_TEST_DATA (currently 854 // Files for these tests are found in DIR_TEST_DATA (currently
859 // "chrome\test\data\", see chrome_paths.cc). 855 // "chrome\test\data\", see chrome_paths.cc).
860 // Mock responses have extension .mock-http-headers appended to the file name. 856 // Mock responses have extension .mock-http-headers appended to the file name.
861 857
862 // Download a file due to the associated MIME type. 858 // Download a file due to the associated MIME type.
863 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadMimeType) { 859 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadMimeType) {
864 ASSERT_TRUE(InitialSetup(false));
865 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 860 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
866 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 861 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
867 862
868 // Download the file and wait. We do not expect the Select File dialog. 863 // Download the file and wait. We do not expect the Select File dialog.
869 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); 864 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG);
870 865
871 // Check state. 866 // Check state.
872 EXPECT_EQ(1, browser()->tab_count()); 867 EXPECT_EQ(1, browser()->tab_count());
873 CheckDownload(browser(), file, file); 868 CheckDownload(browser(), file, file);
874 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); 869 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
875 } 870 }
876 871
877 #if defined(OS_WIN) 872 #if defined(OS_WIN)
878 // Download a file and confirm that the zone identifier (on windows) 873 // Download a file and confirm that the zone identifier (on windows)
879 // is set to internet. 874 // is set to internet.
880 IN_PROC_BROWSER_TEST_F(DownloadTest, CheckInternetZone) { 875 IN_PROC_BROWSER_TEST_F(DownloadTest, CheckInternetZone) {
881 ASSERT_TRUE(InitialSetup(false));
882 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 876 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
883 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 877 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
884 878
885 // Download the file and wait. We do not expect the Select File dialog. 879 // Download the file and wait. We do not expect the Select File dialog.
886 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); 880 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG);
887 881
888 // Check state. Special file state must be checked before CheckDownload, 882 // Check state. Special file state must be checked before CheckDownload,
889 // as CheckDownload will delete the output file. 883 // as CheckDownload will delete the output file.
890 EXPECT_EQ(1, browser()->tab_count()); 884 EXPECT_EQ(1, browser()->tab_count());
891 FilePath downloaded_file(DestinationFile(browser(), file)); 885 FilePath downloaded_file(DestinationFile(browser(), file));
892 if (file_util::VolumeSupportsADS(downloaded_file)) 886 if (file_util::VolumeSupportsADS(downloaded_file))
893 EXPECT_TRUE(file_util::HasInternetZoneIdentifier(downloaded_file)); 887 EXPECT_TRUE(file_util::HasInternetZoneIdentifier(downloaded_file));
894 CheckDownload(browser(), file, file); 888 CheckDownload(browser(), file, file);
895 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); 889 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
896 } 890 }
897 #endif 891 #endif
898 892
899 // Put up a Select File dialog when the file is downloaded, due to 893 // Put up a Select File dialog when the file is downloaded, due to
900 // downloads preferences settings. 894 // downloads preferences settings.
901 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadMimeTypeSelect) { 895 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadMimeTypeSelect) {
902 ASSERT_TRUE(InitialSetup(true)); 896 // Re-enable prompting.
897 browser()->profile()->GetPrefs()->SetBoolean(
898 prefs::kPromptForDownload, true);
903 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 899 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
904 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 900 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
905 901
906 NullSelectFile(browser()); 902 NullSelectFile(browser());
907 903
908 // Download the file and wait. We expect the Select File dialog to appear 904 // Download the file and wait. We expect the Select File dialog to appear
909 // due to the MIME type, but we still wait until the download completes. 905 // due to the MIME type, but we still wait until the download completes.
910 scoped_ptr<DownloadTestObserver> observer( 906 scoped_ptr<DownloadTestObserver> observer(
911 new DownloadTestObserverTerminal( 907 new DownloadTestObserverTerminal(
912 DownloadManagerForBrowser(browser()), 908 DownloadManagerForBrowser(browser()),
(...skipping 10 matching lines...) Expand all
923 919
924 // Check state. 920 // Check state.
925 EXPECT_EQ(1, browser()->tab_count()); 921 EXPECT_EQ(1, browser()->tab_count());
926 CheckDownload(browser(), file, file); 922 CheckDownload(browser(), file, file);
927 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); 923 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
928 } 924 }
929 925
930 // Access a file with a viewable mime-type, verify that a download 926 // Access a file with a viewable mime-type, verify that a download
931 // did not initiate. 927 // did not initiate.
932 IN_PROC_BROWSER_TEST_F(DownloadTest, NoDownload) { 928 IN_PROC_BROWSER_TEST_F(DownloadTest, NoDownload) {
933 ASSERT_TRUE(InitialSetup(false));
934 FilePath file(FILE_PATH_LITERAL("download-test2.html")); 929 FilePath file(FILE_PATH_LITERAL("download-test2.html"));
935 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 930 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
936 FilePath file_path(DestinationFile(browser(), file)); 931 FilePath file_path(DestinationFile(browser(), file));
937 932
938 // Open a web page and wait. 933 // Open a web page and wait.
939 ui_test_utils::NavigateToURL(browser(), url); 934 ui_test_utils::NavigateToURL(browser(), url);
940 935
941 // Check that we did not download the web page. 936 // Check that we did not download the web page.
942 EXPECT_FALSE(file_util::PathExists(file_path)); 937 EXPECT_FALSE(file_util::PathExists(file_path));
943 938
944 // Check state. 939 // Check state.
945 EXPECT_EQ(1, browser()->tab_count()); 940 EXPECT_EQ(1, browser()->tab_count());
946 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); 941 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible());
947 } 942 }
948 943
949 // Verify that when the DownloadResourceThrottle cancels a download, the 944 // Verify that when the DownloadResourceThrottle cancels a download, the
950 // download never makes it to the downloads system. 945 // download never makes it to the downloads system.
951 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadResourceThrottleCancels) { 946 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadResourceThrottleCancels) {
952 ASSERT_TRUE(InitialSetup(false));
953
954 // Navigate to a page with the same domain as the file to download. We can't 947 // Navigate to a page with the same domain as the file to download. We can't
955 // navigate directly to the file we don't want to download because cross-site 948 // navigate directly to the file we don't want to download because cross-site
956 // navigations reset the TabDownloadState. 949 // navigations reset the TabDownloadState.
957 FilePath same_site_path(FILE_PATH_LITERAL("download_script.html")); 950 FilePath same_site_path(FILE_PATH_LITERAL("download_script.html"));
958 GURL same_site_url(URLRequestMockHTTPJob::GetMockUrl(same_site_path)); 951 GURL same_site_url(URLRequestMockHTTPJob::GetMockUrl(same_site_path));
959 ui_test_utils::NavigateToURL(browser(), same_site_url); 952 ui_test_utils::NavigateToURL(browser(), same_site_url);
960 953
961 // Make sure the initial navigation didn't trigger a download. 954 // Make sure the initial navigation didn't trigger a download.
962 EXPECT_TRUE(EnsureNoPendingDownloads()); 955 EXPECT_TRUE(EnsureNoPendingDownloads());
963 956
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1002 995
1003 // Verify that there's no pending download. 996 // Verify that there's no pending download.
1004 EXPECT_TRUE(EnsureNoPendingDownloads()); 997 EXPECT_TRUE(EnsureNoPendingDownloads());
1005 } 998 }
1006 999
1007 // Download a 0-size file with a content-disposition header, verify that the 1000 // Download a 0-size file with a content-disposition header, verify that the
1008 // download tab opened and the file exists as the filename specified in the 1001 // download tab opened and the file exists as the filename specified in the
1009 // header. This also ensures we properly handle empty file downloads. 1002 // header. This also ensures we properly handle empty file downloads.
1010 // The download shelf should be visible in the current tab. 1003 // The download shelf should be visible in the current tab.
1011 IN_PROC_BROWSER_TEST_F(DownloadTest, ContentDisposition) { 1004 IN_PROC_BROWSER_TEST_F(DownloadTest, ContentDisposition) {
1012 ASSERT_TRUE(InitialSetup(false));
1013 FilePath file(FILE_PATH_LITERAL("download-test3.gif")); 1005 FilePath file(FILE_PATH_LITERAL("download-test3.gif"));
1014 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1006 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1015 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif")); 1007 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif"));
1016 1008
1017 // Download a file and wait. 1009 // Download a file and wait.
1018 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); 1010 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG);
1019 1011
1020 CheckDownload(browser(), download_file, file); 1012 CheckDownload(browser(), download_file, file);
1021 1013
1022 // Check state. 1014 // Check state.
1023 EXPECT_EQ(1, browser()->tab_count()); 1015 EXPECT_EQ(1, browser()->tab_count());
1024 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); 1016 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
1025 } 1017 }
1026 1018
1027 // Test that the download shelf is per-window by starting a download in one 1019 // Test that the download shelf is per-window by starting a download in one
1028 // tab, opening a second tab, closing the shelf, going back to the first tab, 1020 // tab, opening a second tab, closing the shelf, going back to the first tab,
1029 // and checking that the shelf is closed. 1021 // and checking that the shelf is closed.
1030 IN_PROC_BROWSER_TEST_F(DownloadTest, PerWindowShelf) { 1022 IN_PROC_BROWSER_TEST_F(DownloadTest, PerWindowShelf) {
1031 ASSERT_TRUE(InitialSetup(false));
1032 FilePath file(FILE_PATH_LITERAL("download-test3.gif")); 1023 FilePath file(FILE_PATH_LITERAL("download-test3.gif"));
1033 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1024 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1034 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif")); 1025 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif"));
1035 1026
1036 // Download a file and wait. 1027 // Download a file and wait.
1037 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); 1028 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG);
1038 1029
1039 CheckDownload(browser(), download_file, file); 1030 CheckDownload(browser(), download_file, file);
1040 1031
1041 // Check state. 1032 // Check state.
(...skipping 15 matching lines...) Expand all
1057 browser()->ActivateTabAt(0, true); 1048 browser()->ActivateTabAt(0, true);
1058 EXPECT_EQ(2, browser()->tab_count()); 1049 EXPECT_EQ(2, browser()->tab_count());
1059 1050
1060 // The download shelf should not be visible. 1051 // The download shelf should not be visible.
1061 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); 1052 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible());
1062 } 1053 }
1063 1054
1064 // Check whether the downloads shelf is closed when the downloads tab is 1055 // Check whether the downloads shelf is closed when the downloads tab is
1065 // invoked. 1056 // invoked.
1066 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseShelfOnDownloadsTab) { 1057 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseShelfOnDownloadsTab) {
1067 ASSERT_TRUE(InitialSetup(false));
1068 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1058 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1069 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1059 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1070 1060
1071 // Download the file and wait. We do not expect the Select File dialog. 1061 // Download the file and wait. We do not expect the Select File dialog.
1072 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); 1062 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG);
1073 1063
1074 // Check state. 1064 // Check state.
1075 EXPECT_EQ(1, browser()->tab_count()); 1065 EXPECT_EQ(1, browser()->tab_count());
1076 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); 1066 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
1077 1067
(...skipping 19 matching lines...) Expand all
1097 IN_PROC_BROWSER_TEST_F(DownloadTest, KnownSize) { 1087 IN_PROC_BROWSER_TEST_F(DownloadTest, KnownSize) {
1098 ASSERT_TRUE(RunSizeTest(browser(), SIZE_TEST_TYPE_KNOWN, 1088 ASSERT_TRUE(RunSizeTest(browser(), SIZE_TEST_TYPE_KNOWN,
1099 "71% - ", "100% - ")); 1089 "71% - ", "100% - "));
1100 } 1090 }
1101 1091
1102 // Test that when downloading an item in Incognito mode, we don't crash when 1092 // Test that when downloading an item in Incognito mode, we don't crash when
1103 // closing the last Incognito window (http://crbug.com/13983). 1093 // closing the last Incognito window (http://crbug.com/13983).
1104 // Also check that the download shelf is not visible after closing the 1094 // Also check that the download shelf is not visible after closing the
1105 // Incognito window. 1095 // Incognito window.
1106 IN_PROC_BROWSER_TEST_F(DownloadTest, IncognitoDownload) { 1096 IN_PROC_BROWSER_TEST_F(DownloadTest, IncognitoDownload) {
1107 ASSERT_TRUE(InitialSetup(false));
1108 // Open an Incognito window. 1097 // Open an Incognito window.
1109 Browser* incognito = CreateIncognitoBrowser(); // Waits. 1098 Browser* incognito = CreateIncognitoBrowser(); // Waits.
1110 ASSERT_TRUE(incognito); 1099 ASSERT_TRUE(incognito);
1111 int window_count = BrowserList::size(); 1100 int window_count = BrowserList::size();
1112 EXPECT_EQ(2, window_count); 1101 EXPECT_EQ(2, window_count);
1113 1102
1114 // Download a file in the Incognito window and wait. 1103 // Download a file in the Incognito window and wait.
1115 CreateAndSetDownloadsDirectory(incognito); 1104 CreateAndSetDownloadsDirectory(incognito);
1116 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1105 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1117 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1106 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
(...skipping 29 matching lines...) Expand all
1147 // On ChromeOS, the download panel is common to both profiles, so 1136 // On ChromeOS, the download panel is common to both profiles, so
1148 // it is still visible. 1137 // it is still visible.
1149 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); 1138 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible());
1150 1139
1151 CheckDownload(browser(), file, file); 1140 CheckDownload(browser(), file, file);
1152 } 1141 }
1153 1142
1154 // Navigate to a new background page, but don't download. Confirm that the 1143 // Navigate to a new background page, but don't download. Confirm that the
1155 // download shelf is not visible and that we have two tabs. 1144 // download shelf is not visible and that we have two tabs.
1156 IN_PROC_BROWSER_TEST_F(DownloadTest, DontCloseNewTab1) { 1145 IN_PROC_BROWSER_TEST_F(DownloadTest, DontCloseNewTab1) {
1157 ASSERT_TRUE(InitialSetup(false));
1158 // Because it's an HTML link, it should open a web page rather than 1146 // Because it's an HTML link, it should open a web page rather than
1159 // downloading. 1147 // downloading.
1160 FilePath file1(FILE_PATH_LITERAL("download-test2.html")); 1148 FilePath file1(FILE_PATH_LITERAL("download-test2.html"));
1161 GURL url(URLRequestMockHTTPJob::GetMockUrl(file1)); 1149 GURL url(URLRequestMockHTTPJob::GetMockUrl(file1));
1162 1150
1163 // Open a web page and wait. 1151 // Open a web page and wait.
1164 ui_test_utils::NavigateToURLWithDisposition( 1152 ui_test_utils::NavigateToURLWithDisposition(
1165 browser(), 1153 browser(),
1166 url, 1154 url,
1167 NEW_BACKGROUND_TAB, 1155 NEW_BACKGROUND_TAB,
1168 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 1156 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
1169 1157
1170 // We should have two tabs now. 1158 // We should have two tabs now.
1171 EXPECT_EQ(2, browser()->tab_count()); 1159 EXPECT_EQ(2, browser()->tab_count());
1172 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); 1160 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible());
1173 } 1161 }
1174 1162
1175 // Download a file in a background tab. Verify that the tab is closed 1163 // Download a file in a background tab. Verify that the tab is closed
1176 // automatically, and that the download shelf is visible in the current tab. 1164 // automatically, and that the download shelf is visible in the current tab.
1177 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseNewTab1) { 1165 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseNewTab1) {
1178 ASSERT_TRUE(InitialSetup(false));
1179
1180 // Download a file in a new background tab and wait. The tab is automatically 1166 // Download a file in a new background tab and wait. The tab is automatically
1181 // closed when the download begins. 1167 // closed when the download begins.
1182 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1168 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1183 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1169 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1184 DownloadAndWaitWithDisposition( 1170 DownloadAndWaitWithDisposition(
1185 browser(), 1171 browser(),
1186 url, 1172 url,
1187 NEW_BACKGROUND_TAB, 1173 NEW_BACKGROUND_TAB,
1188 EXPECT_NO_SELECT_DIALOG, 1174 EXPECT_NO_SELECT_DIALOG,
1189 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 1175 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
1190 1176
1191 // When the download finishes, we should still have one tab. 1177 // When the download finishes, we should still have one tab.
1192 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); 1178 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
1193 EXPECT_EQ(1, browser()->tab_count()); 1179 EXPECT_EQ(1, browser()->tab_count());
1194 1180
1195 CheckDownload(browser(), file, file); 1181 CheckDownload(browser(), file, file);
1196 } 1182 }
1197 1183
1198 // Open a web page in the current tab, then download a file in another tab via 1184 // Open a web page in the current tab, then download a file in another tab via
1199 // a Javascript call. 1185 // a Javascript call.
1200 // Verify that we have 2 tabs, and the download shelf is visible in the current 1186 // Verify that we have 2 tabs, and the download shelf is visible in the current
1201 // tab. 1187 // tab.
1202 // 1188 //
1203 // The download_page1.html page contains an openNew() function that opens a 1189 // The download_page1.html page contains an openNew() function that opens a
1204 // tab and then downloads download-test1.lib. 1190 // tab and then downloads download-test1.lib.
1205 IN_PROC_BROWSER_TEST_F(DownloadTest, DontCloseNewTab2) { 1191 IN_PROC_BROWSER_TEST_F(DownloadTest, DontCloseNewTab2) {
1206 ASSERT_TRUE(InitialSetup(false));
1207 // Because it's an HTML link, it should open a web page rather than 1192 // Because it's an HTML link, it should open a web page rather than
1208 // downloading. 1193 // downloading.
1209 FilePath file1(FILE_PATH_LITERAL("download_page1.html")); 1194 FilePath file1(FILE_PATH_LITERAL("download_page1.html"));
1210 GURL url(URLRequestMockHTTPJob::GetMockUrl(file1)); 1195 GURL url(URLRequestMockHTTPJob::GetMockUrl(file1));
1211 1196
1212 // Open a web page and wait. 1197 // Open a web page and wait.
1213 ui_test_utils::NavigateToURL(browser(), url); 1198 ui_test_utils::NavigateToURL(browser(), url);
1214 1199
1215 // Download a file in a new tab and wait (via Javascript). 1200 // Download a file in a new tab and wait (via Javascript).
1216 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1201 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
(...skipping 11 matching lines...) Expand all
1228 } 1213 }
1229 1214
1230 // Open a web page in the current tab, open another tab via a Javascript call, 1215 // Open a web page in the current tab, open another tab via a Javascript call,
1231 // then download a file in the new tab. 1216 // then download a file in the new tab.
1232 // Verify that we have 2 tabs, and the download shelf is visible in the current 1217 // Verify that we have 2 tabs, and the download shelf is visible in the current
1233 // tab. 1218 // tab.
1234 // 1219 //
1235 // The download_page2.html page contains an openNew() function that opens a 1220 // The download_page2.html page contains an openNew() function that opens a
1236 // tab. 1221 // tab.
1237 IN_PROC_BROWSER_TEST_F(DownloadTest, DontCloseNewTab3) { 1222 IN_PROC_BROWSER_TEST_F(DownloadTest, DontCloseNewTab3) {
1238 ASSERT_TRUE(InitialSetup(false));
1239 // Because it's an HTML link, it should open a web page rather than 1223 // Because it's an HTML link, it should open a web page rather than
1240 // downloading. 1224 // downloading.
1241 FilePath file1(FILE_PATH_LITERAL("download_page2.html")); 1225 FilePath file1(FILE_PATH_LITERAL("download_page2.html"));
1242 GURL url1(URLRequestMockHTTPJob::GetMockUrl(file1)); 1226 GURL url1(URLRequestMockHTTPJob::GetMockUrl(file1));
1243 1227
1244 // Open a web page and wait. 1228 // Open a web page and wait.
1245 ui_test_utils::NavigateToURL(browser(), url1); 1229 ui_test_utils::NavigateToURL(browser(), url1);
1246 1230
1247 // Open a new tab and wait. 1231 // Open a new tab and wait.
1248 ui_test_utils::NavigateToURLWithDisposition( 1232 ui_test_utils::NavigateToURLWithDisposition(
(...skipping 21 matching lines...) Expand all
1270 } 1254 }
1271 1255
1272 // Open a web page in the current tab, then download a file via Javascript, 1256 // Open a web page in the current tab, then download a file via Javascript,
1273 // which will do so in a temporary tab. 1257 // which will do so in a temporary tab.
1274 // Verify that we have 1 tab, and the download shelf is visible. 1258 // Verify that we have 1 tab, and the download shelf is visible.
1275 // 1259 //
1276 // The download_page3.html page contains an openNew() function that opens a 1260 // The download_page3.html page contains an openNew() function that opens a
1277 // tab with download-test1.lib in the URL. When the URL is determined to be 1261 // tab with download-test1.lib in the URL. When the URL is determined to be
1278 // a download, the tab is closed automatically. 1262 // a download, the tab is closed automatically.
1279 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseNewTab2) { 1263 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseNewTab2) {
1280 ASSERT_TRUE(InitialSetup(false));
1281 // Because it's an HTML link, it should open a web page rather than 1264 // Because it's an HTML link, it should open a web page rather than
1282 // downloading. 1265 // downloading.
1283 FilePath file1(FILE_PATH_LITERAL("download_page3.html")); 1266 FilePath file1(FILE_PATH_LITERAL("download_page3.html"));
1284 GURL url(URLRequestMockHTTPJob::GetMockUrl(file1)); 1267 GURL url(URLRequestMockHTTPJob::GetMockUrl(file1));
1285 1268
1286 // Open a web page and wait. 1269 // Open a web page and wait.
1287 ui_test_utils::NavigateToURL(browser(), url); 1270 ui_test_utils::NavigateToURL(browser(), url);
1288 1271
1289 // Download a file and wait. 1272 // Download a file and wait.
1290 // The file to download is "download-test1.lib". 1273 // The file to download is "download-test1.lib".
(...skipping 12 matching lines...) Expand all
1303 } 1286 }
1304 1287
1305 // Open a web page in the current tab, then call Javascript via a button to 1288 // Open a web page in the current tab, then call Javascript via a button to
1306 // download a file in a new tab, which is closed automatically when the 1289 // download a file in a new tab, which is closed automatically when the
1307 // download begins. 1290 // download begins.
1308 // Verify that we have 1 tab, and the download shelf is visible. 1291 // Verify that we have 1 tab, and the download shelf is visible.
1309 // 1292 //
1310 // The download_page4.html page contains a form with download-test1.lib as the 1293 // The download_page4.html page contains a form with download-test1.lib as the
1311 // action. 1294 // action.
1312 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseNewTab3) { 1295 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseNewTab3) {
1313 ASSERT_TRUE(InitialSetup(false));
1314 // Because it's an HTML link, it should open a web page rather than 1296 // Because it's an HTML link, it should open a web page rather than
1315 // downloading. 1297 // downloading.
1316 FilePath file1(FILE_PATH_LITERAL("download_page4.html")); 1298 FilePath file1(FILE_PATH_LITERAL("download_page4.html"));
1317 GURL url(URLRequestMockHTTPJob::GetMockUrl(file1)); 1299 GURL url(URLRequestMockHTTPJob::GetMockUrl(file1));
1318 1300
1319 // Open a web page and wait. 1301 // Open a web page and wait.
1320 ui_test_utils::NavigateToURL(browser(), url); 1302 ui_test_utils::NavigateToURL(browser(), url);
1321 1303
1322 // Download a file in a new tab and wait. The tab will automatically close 1304 // Download a file in a new tab and wait. The tab will automatically close
1323 // when the download begins. 1305 // when the download begins.
(...skipping 14 matching lines...) Expand all
1338 } 1320 }
1339 1321
1340 // Download a file in a new window. 1322 // Download a file in a new window.
1341 // Verify that we have 2 windows, and the download shelf is not visible in the 1323 // Verify that we have 2 windows, and the download shelf is not visible in the
1342 // first window, but is visible in the second window. 1324 // first window, but is visible in the second window.
1343 // Close the new window. 1325 // Close the new window.
1344 // Verify that we have 1 window, and the download shelf is not visible. 1326 // Verify that we have 1 window, and the download shelf is not visible.
1345 // 1327 //
1346 // Regression test for http://crbug.com/44454 1328 // Regression test for http://crbug.com/44454
1347 IN_PROC_BROWSER_TEST_F(DownloadTest, NewWindow) { 1329 IN_PROC_BROWSER_TEST_F(DownloadTest, NewWindow) {
1348 ASSERT_TRUE(InitialSetup(false));
1349 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1330 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1350 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1331 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1351 #if !defined(OS_MACOSX) 1332 #if !defined(OS_MACOSX)
1352 // See below. 1333 // See below.
1353 Browser* first_browser = browser(); 1334 Browser* first_browser = browser();
1354 #endif 1335 #endif
1355 1336
1356 // Download a file in a new window and wait. 1337 // Download a file in a new window and wait.
1357 DownloadAndWaitWithDisposition(browser(), 1338 DownloadAndWaitWithDisposition(browser(),
1358 url, 1339 url,
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1398 EXPECT_EQ(1, browser()->tab_count()); 1379 EXPECT_EQ(1, browser()->tab_count());
1399 // Download shelf should close. Download panel stays open on ChromeOS. 1380 // Download shelf should close. Download panel stays open on ChromeOS.
1400 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); 1381 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible());
1401 1382
1402 CheckDownload(browser(), file, file); 1383 CheckDownload(browser(), file, file);
1403 } 1384 }
1404 1385
1405 // Check that downloading multiple (in this case, 2) files does not result in 1386 // Check that downloading multiple (in this case, 2) files does not result in
1406 // corrupted files. 1387 // corrupted files.
1407 IN_PROC_BROWSER_TEST_F(DownloadTest, MultiDownload) { 1388 IN_PROC_BROWSER_TEST_F(DownloadTest, MultiDownload) {
1408 ASSERT_TRUE(InitialSetup(false));
1409 EXPECT_EQ(1, browser()->tab_count()); 1389 EXPECT_EQ(1, browser()->tab_count());
1410 1390
1411 // Create a download, wait until it's started, and confirm 1391 // Create a download, wait until it's started, and confirm
1412 // we're in the expected state. 1392 // we're in the expected state.
1413 scoped_ptr<DownloadTestObserver> observer1( 1393 scoped_ptr<DownloadTestObserver> observer1(
1414 CreateInProgressWaiter(browser(), 1)); 1394 CreateInProgressWaiter(browser(), 1));
1415 ui_test_utils::NavigateToURL( 1395 ui_test_utils::NavigateToURL(
1416 browser(), GURL(URLRequestSlowDownloadJob::kUnknownSizeUrl)); 1396 browser(), GURL(URLRequestSlowDownloadJob::kUnknownSizeUrl));
1417 observer1->WaitForFinished(); 1397 observer1->WaitForFinished();
1418 1398
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1468 size_t file_size1 = URLRequestSlowDownloadJob::kFirstDownloadSize + 1448 size_t file_size1 = URLRequestSlowDownloadJob::kFirstDownloadSize +
1469 URLRequestSlowDownloadJob::kSecondDownloadSize; 1449 URLRequestSlowDownloadJob::kSecondDownloadSize;
1470 std::string expected_contents(file_size1, '*'); 1450 std::string expected_contents(file_size1, '*');
1471 ASSERT_TRUE(VerifyFile(file1, expected_contents, file_size1)); 1451 ASSERT_TRUE(VerifyFile(file1, expected_contents, file_size1));
1472 1452
1473 FilePath file2(download2->GetFullPath()); 1453 FilePath file2(download2->GetFullPath());
1474 ASSERT_TRUE(file_util::ContentsEqual(OriginFile(file), file2)); 1454 ASSERT_TRUE(file_util::ContentsEqual(OriginFile(file), file2));
1475 } 1455 }
1476 1456
1477 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadCancelled) { 1457 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadCancelled) {
1478 ASSERT_TRUE(InitialSetup(false));
1479 EXPECT_EQ(1, browser()->tab_count()); 1458 EXPECT_EQ(1, browser()->tab_count());
1480 1459
1481 // TODO(rdsmith): Fragile code warning! The code below relies on the 1460 // TODO(rdsmith): Fragile code warning! The code below relies on the
1482 // DownloadTestObserverInProgress only finishing when the new download 1461 // DownloadTestObserverInProgress only finishing when the new download
1483 // has reached the state of being entered into the history and being 1462 // has reached the state of being entered into the history and being
1484 // user-visible (that's what's required for the Remove to be valid and 1463 // user-visible (that's what's required for the Remove to be valid and
1485 // for the download shelf to be visible). By the pure semantics of 1464 // for the download shelf to be visible). By the pure semantics of
1486 // DownloadTestObserverInProgress, that's not guaranteed; DownloadItems 1465 // DownloadTestObserverInProgress, that's not guaranteed; DownloadItems
1487 // are created in the IN_PROGRESS state and made known to the DownloadManager 1466 // are created in the IN_PROGRESS state and made known to the DownloadManager
1488 // immediately, so any ModelChanged event on the DownloadManager after 1467 // immediately, so any ModelChanged event on the DownloadManager after
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1520 EXPECT_TRUE(EnsureNoPendingDownloads()); 1499 EXPECT_TRUE(EnsureNoPendingDownloads());
1521 1500
1522 // Using "DownloadItem::Remove" follows the discard dangerous download path, 1501 // Using "DownloadItem::Remove" follows the discard dangerous download path,
1523 // which completely removes the browser from the shelf and closes the shelf 1502 // which completely removes the browser from the shelf and closes the shelf
1524 // if it was there. Download panel stays open on ChromeOS. 1503 // if it was there. Download panel stays open on ChromeOS.
1525 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); 1504 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible());
1526 } 1505 }
1527 1506
1528 // Confirm a download makes it into the history properly. 1507 // Confirm a download makes it into the history properly.
1529 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadHistoryCheck) { 1508 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadHistoryCheck) {
1530 ASSERT_TRUE(InitialSetup(false));
1531 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1509 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1532 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1510 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1533 FilePath origin_file(OriginFile(file)); 1511 FilePath origin_file(OriginFile(file));
1534 int64 origin_size; 1512 int64 origin_size;
1535 file_util::GetFileSize(origin_file, &origin_size); 1513 file_util::GetFileSize(origin_file, &origin_size);
1536 1514
1537 // Download the file and wait. We do not expect the Select File dialog. 1515 // Download the file and wait. We do not expect the Select File dialog.
1538 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); 1516 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG);
1539 1517
1540 // Get details of what downloads have just happened. 1518 // Get details of what downloads have just happened.
(...skipping 17 matching lines...) Expand all
1558 EXPECT_EQ(url, info.url); 1536 EXPECT_EQ(url, info.url);
1559 // Ignore start_time. 1537 // Ignore start_time.
1560 EXPECT_EQ(origin_size, info.received_bytes); 1538 EXPECT_EQ(origin_size, info.received_bytes);
1561 EXPECT_EQ(origin_size, info.total_bytes); 1539 EXPECT_EQ(origin_size, info.total_bytes);
1562 EXPECT_EQ(DownloadItem::COMPLETE, info.state); 1540 EXPECT_EQ(DownloadItem::COMPLETE, info.state);
1563 } 1541 }
1564 1542
1565 // Test for crbug.com/14505. This tests that chrome:// urls are still functional 1543 // Test for crbug.com/14505. This tests that chrome:// urls are still functional
1566 // after download of a file while viewing another chrome://. 1544 // after download of a file while viewing another chrome://.
1567 IN_PROC_BROWSER_TEST_F(DownloadTest, ChromeURLAfterDownload) { 1545 IN_PROC_BROWSER_TEST_F(DownloadTest, ChromeURLAfterDownload) {
1568 ASSERT_TRUE(InitialSetup(false));
1569 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1546 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1570 GURL download_url(URLRequestMockHTTPJob::GetMockUrl(file)); 1547 GURL download_url(URLRequestMockHTTPJob::GetMockUrl(file));
1571 GURL flags_url(chrome::kChromeUIFlagsURL); 1548 GURL flags_url(chrome::kChromeUIFlagsURL);
1572 GURL extensions_url(chrome::kChromeUIExtensionsFrameURL); 1549 GURL extensions_url(chrome::kChromeUIExtensionsFrameURL);
1573 1550
1574 ui_test_utils::NavigateToURL(browser(), flags_url); 1551 ui_test_utils::NavigateToURL(browser(), flags_url);
1575 DownloadAndWait(browser(), download_url, EXPECT_NO_SELECT_DIALOG); 1552 DownloadAndWait(browser(), download_url, EXPECT_NO_SELECT_DIALOG);
1576 ui_test_utils::NavigateToURL(browser(), extensions_url); 1553 ui_test_utils::NavigateToURL(browser(), extensions_url);
1577 WebContents* contents = browser()->GetSelectedWebContents(); 1554 WebContents* contents = browser()->GetSelectedWebContents();
1578 ASSERT_TRUE(contents); 1555 ASSERT_TRUE(contents);
1579 bool webui_responded = false; 1556 bool webui_responded = false;
1580 EXPECT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( 1557 EXPECT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool(
1581 contents->GetRenderViewHost(), 1558 contents->GetRenderViewHost(),
1582 L"", 1559 L"",
1583 L"window.domAutomationController.send(window.webui_responded_);", 1560 L"window.domAutomationController.send(window.webui_responded_);",
1584 &webui_responded)); 1561 &webui_responded));
1585 EXPECT_TRUE(webui_responded); 1562 EXPECT_TRUE(webui_responded);
1586 } 1563 }
1587 1564
1588 // Test for crbug.com/12745. This tests that if a download is initiated from 1565 // Test for crbug.com/12745. This tests that if a download is initiated from
1589 // a chrome:// page that has registered and onunload handler, the browser 1566 // a chrome:// page that has registered and onunload handler, the browser
1590 // will be able to close. 1567 // will be able to close.
1591 IN_PROC_BROWSER_TEST_F(DownloadTest, BrowserCloseAfterDownload) { 1568 IN_PROC_BROWSER_TEST_F(DownloadTest, BrowserCloseAfterDownload) {
1592 ASSERT_TRUE(InitialSetup(false));
1593 GURL downloads_url(chrome::kChromeUIFlagsURL); 1569 GURL downloads_url(chrome::kChromeUIFlagsURL);
1594 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1570 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1595 GURL download_url(URLRequestMockHTTPJob::GetMockUrl(file)); 1571 GURL download_url(URLRequestMockHTTPJob::GetMockUrl(file));
1596 1572
1597 ui_test_utils::NavigateToURL(browser(), downloads_url); 1573 ui_test_utils::NavigateToURL(browser(), downloads_url);
1598 WebContents* contents = browser()->GetSelectedWebContents(); 1574 WebContents* contents = browser()->GetSelectedWebContents();
1599 ASSERT_TRUE(contents); 1575 ASSERT_TRUE(contents);
1600 bool result = false; 1576 bool result = false;
1601 EXPECT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( 1577 EXPECT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool(
1602 contents->GetRenderViewHost(), 1578 contents->GetRenderViewHost(),
1603 L"", 1579 L"",
1604 L"window.onunload = function() { var do_nothing = 0; }; " 1580 L"window.onunload = function() { var do_nothing = 0; }; "
1605 L"window.domAutomationController.send(true);", 1581 L"window.domAutomationController.send(true);",
1606 &result)); 1582 &result));
1607 EXPECT_TRUE(result); 1583 EXPECT_TRUE(result);
1608 1584
1609 DownloadAndWait(browser(), download_url, EXPECT_NO_SELECT_DIALOG); 1585 DownloadAndWait(browser(), download_url, EXPECT_NO_SELECT_DIALOG);
1610 1586
1611 ui_test_utils::WindowedNotificationObserver signal( 1587 ui_test_utils::WindowedNotificationObserver signal(
1612 chrome::NOTIFICATION_BROWSER_CLOSED, 1588 chrome::NOTIFICATION_BROWSER_CLOSED,
1613 content::Source<Browser>(browser())); 1589 content::Source<Browser>(browser()));
1614 browser()->CloseWindow(); 1590 browser()->CloseWindow();
1615 signal.Wait(); 1591 signal.Wait();
1616 } 1592 }
1617 1593
1618 // Test to make sure the 'download' attribute in anchor tag is respected. 1594 // Test to make sure the 'download' attribute in anchor tag is respected.
1619 IN_PROC_BROWSER_TEST_F(DownloadTest, AnchorDownloadTag) { 1595 IN_PROC_BROWSER_TEST_F(DownloadTest, AnchorDownloadTag) {
1620 ASSERT_TRUE(InitialSetup(false));
1621 FilePath file(FILE_PATH_LITERAL("download-anchor-attrib.html")); 1596 FilePath file(FILE_PATH_LITERAL("download-anchor-attrib.html"));
1622 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1597 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1623 1598
1624 // Create a download, wait until it's complete, and confirm 1599 // Create a download, wait until it's complete, and confirm
1625 // we're in the expected state. 1600 // we're in the expected state.
1626 scoped_ptr<DownloadTestObserver> observer(CreateWaiter(browser(), 1)); 1601 scoped_ptr<DownloadTestObserver> observer(CreateWaiter(browser(), 1));
1627 ui_test_utils::NavigateToURL(browser(), url); 1602 ui_test_utils::NavigateToURL(browser(), url);
1628 observer->WaitForFinished(); 1603 observer->WaitForFinished();
1629 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); 1604 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE));
1630 CheckDownloadStates(1, DownloadItem::COMPLETE); 1605 CheckDownloadStates(1, DownloadItem::COMPLETE);
1631 1606
1632 // Confirm the downloaded data exists. 1607 // Confirm the downloaded data exists.
1633 FilePath downloaded_file = GetDownloadDirectory(browser()); 1608 FilePath downloaded_file = GetDownloadDirectory(browser());
1634 downloaded_file = downloaded_file.Append(FILE_PATH_LITERAL("a_red_dot.png")); 1609 downloaded_file = downloaded_file.Append(FILE_PATH_LITERAL("a_red_dot.png"));
1635 EXPECT_TRUE(file_util::PathExists(downloaded_file)); 1610 EXPECT_TRUE(file_util::PathExists(downloaded_file));
1636 } 1611 }
1637 1612
1638 // crbug.com/118159 1613 // crbug.com/118159
1639 #if defined(OS_LINUX) 1614 #if defined(OS_LINUX)
1640 #define MAYBE_AutoOpen DISABLED_AutoOpen 1615 #define MAYBE_AutoOpen DISABLED_AutoOpen
1641 #else 1616 #else
1642 #define MAYBE_AutoOpen AutoOpen 1617 #define MAYBE_AutoOpen AutoOpen
1643 #endif 1618 #endif
1644 1619
1645 // Test to make sure auto-open works. 1620 // Test to make sure auto-open works.
1646 IN_PROC_BROWSER_TEST_F(DownloadTest, MAYBE_AutoOpen) { 1621 IN_PROC_BROWSER_TEST_F(DownloadTest, MAYBE_AutoOpen) {
1647 ASSERT_TRUE(InitialSetup(false));
1648 FilePath file(FILE_PATH_LITERAL("download-autoopen.txt")); 1622 FilePath file(FILE_PATH_LITERAL("download-autoopen.txt"));
1649 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1623 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1650 1624
1651 ASSERT_TRUE( 1625 ASSERT_TRUE(
1652 GetDownloadPrefs(browser())->EnableAutoOpenBasedOnExtension(file)); 1626 GetDownloadPrefs(browser())->EnableAutoOpenBasedOnExtension(file));
1653 1627
1654 // Mock out external opening on all downloads until end of test. 1628 // Mock out external opening on all downloads until end of test.
1655 MockDownloadOpeningObserver observer( 1629 MockDownloadOpeningObserver observer(
1656 DownloadManagerForBrowser(browser())); 1630 DownloadManagerForBrowser(browser()));
1657 1631
(...skipping 10 matching lines...) Expand all
1668 // As long as we're here, confirmed everything else is good. 1642 // As long as we're here, confirmed everything else is good.
1669 EXPECT_EQ(1, browser()->tab_count()); 1643 EXPECT_EQ(1, browser()->tab_count());
1670 CheckDownload(browser(), file, file); 1644 CheckDownload(browser(), file, file);
1671 // Download shelf should close. Download panel stays open on ChromeOS. 1645 // Download shelf should close. Download panel stays open on ChromeOS.
1672 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); 1646 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible());
1673 } 1647 }
1674 1648
1675 // Download an extension. Expect a dangerous download warning. 1649 // Download an extension. Expect a dangerous download warning.
1676 // Deny the download. 1650 // Deny the download.
1677 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxDenyInstall) { 1651 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxDenyInstall) {
1678 ASSERT_TRUE(InitialSetup(false));
1679 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kGoodCrxPath)); 1652 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kGoodCrxPath));
1680 1653
1681 scoped_ptr<DownloadTestObserver> observer( 1654 scoped_ptr<DownloadTestObserver> observer(
1682 DangerousDownloadWaiter( 1655 DangerousDownloadWaiter(
1683 browser(), 1, 1656 browser(), 1,
1684 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_DENY)); 1657 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_DENY));
1685 ui_test_utils::NavigateToURL(browser(), extension_url); 1658 ui_test_utils::NavigateToURL(browser(), extension_url);
1686 1659
1687 observer->WaitForFinished(); 1660 observer->WaitForFinished();
1688 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::CANCELLED)); 1661 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::CANCELLED));
1689 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); 1662 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen());
1690 1663
1691 // Download shelf should close. Download panel stays open on ChromeOS. 1664 // Download shelf should close. Download panel stays open on ChromeOS.
1692 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); 1665 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible());
1693 1666
1694 // Check that the CRX is not installed. 1667 // Check that the CRX is not installed.
1695 ExtensionService* extension_service = 1668 ExtensionService* extension_service =
1696 browser()->profile()->GetExtensionService(); 1669 browser()->profile()->GetExtensionService();
1697 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false)); 1670 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false));
1698 } 1671 }
1699 1672
1700 // Download an extension. Expect a dangerous download warning. 1673 // Download an extension. Expect a dangerous download warning.
1701 // Allow the download, deny the install. 1674 // Allow the download, deny the install.
1702 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInstallDenysPermissions) { 1675 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInstallDenysPermissions) {
1703 ASSERT_TRUE(InitialSetup(false));
1704 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kGoodCrxPath)); 1676 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kGoodCrxPath));
1705 1677
1706 // Install a mock install UI that simulates a user denying permission to 1678 // Install a mock install UI that simulates a user denying permission to
1707 // finish the install. 1679 // finish the install.
1708 download_crx_util::SetMockInstallUIForTesting( 1680 download_crx_util::SetMockInstallUIForTesting(
1709 new MockAbortExtensionInstallUI()); 1681 new MockAbortExtensionInstallUI());
1710 1682
1711 scoped_ptr<DownloadTestObserver> observer( 1683 scoped_ptr<DownloadTestObserver> observer(
1712 DangerousDownloadWaiter( 1684 DangerousDownloadWaiter(
1713 browser(), 1, 1685 browser(), 1,
(...skipping 10 matching lines...) Expand all
1724 1696
1725 // Check that the extension was not installed. 1697 // Check that the extension was not installed.
1726 ExtensionService* extension_service = 1698 ExtensionService* extension_service =
1727 browser()->profile()->GetExtensionService(); 1699 browser()->profile()->GetExtensionService();
1728 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false)); 1700 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false));
1729 } 1701 }
1730 1702
1731 // Download an extension. Expect a dangerous download warning. 1703 // Download an extension. Expect a dangerous download warning.
1732 // Allow the download, and the install. 1704 // Allow the download, and the install.
1733 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInstallAcceptPermissions) { 1705 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInstallAcceptPermissions) {
1734 ASSERT_TRUE(InitialSetup(false));
1735 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kGoodCrxPath)); 1706 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kGoodCrxPath));
1736 1707
1737 // Install a mock install UI that simulates a user allowing permission to 1708 // Install a mock install UI that simulates a user allowing permission to
1738 // finish the install. 1709 // finish the install.
1739 download_crx_util::SetMockInstallUIForTesting( 1710 download_crx_util::SetMockInstallUIForTesting(
1740 new MockAutoConfirmExtensionInstallUI(browser()->profile())); 1711 new MockAutoConfirmExtensionInstallUI(browser()->profile()));
1741 1712
1742 scoped_ptr<DownloadTestObserver> observer( 1713 scoped_ptr<DownloadTestObserver> observer(
1743 DangerousDownloadWaiter( 1714 DangerousDownloadWaiter(
1744 browser(), 1, 1715 browser(), 1,
1745 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); 1716 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT));
1746 ui_test_utils::NavigateToURL(browser(), extension_url); 1717 ui_test_utils::NavigateToURL(browser(), extension_url);
1747 1718
1748 observer->WaitForFinished(); 1719 observer->WaitForFinished();
1749 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); 1720 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE));
1750 CheckDownloadStates(1, DownloadItem::COMPLETE); 1721 CheckDownloadStates(1, DownloadItem::COMPLETE);
1751 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); 1722 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen());
1752 1723
1753 // Download shelf should close. Download panel stays open on ChromeOS. 1724 // Download shelf should close. Download panel stays open on ChromeOS.
1754 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); 1725 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible());
1755 1726
1756 // Check that the extension was installed. 1727 // Check that the extension was installed.
1757 ExtensionService* extension_service = 1728 ExtensionService* extension_service =
1758 browser()->profile()->GetExtensionService(); 1729 browser()->profile()->GetExtensionService();
1759 ASSERT_TRUE(extension_service->GetExtensionById(kGoodCrxId, false)); 1730 ASSERT_TRUE(extension_service->GetExtensionById(kGoodCrxId, false));
1760 } 1731 }
1761 1732
1762 // Test installing a CRX that fails integrity checks. 1733 // Test installing a CRX that fails integrity checks.
1763 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInvalid) { 1734 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInvalid) {
1764 ASSERT_TRUE(InitialSetup(false));
1765 FilePath file(FILE_PATH_LITERAL("extensions/bad_signature.crx")); 1735 FilePath file(FILE_PATH_LITERAL("extensions/bad_signature.crx"));
1766 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(file)); 1736 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(file));
1767 1737
1768 // Install a mock install UI that simulates a user allowing permission to 1738 // Install a mock install UI that simulates a user allowing permission to
1769 // finish the install, and dismisses any error message. We check that the 1739 // finish the install, and dismisses any error message. We check that the
1770 // install failed below. 1740 // install failed below.
1771 download_crx_util::SetMockInstallUIForTesting( 1741 download_crx_util::SetMockInstallUIForTesting(
1772 new MockAutoConfirmExtensionInstallUI(browser()->profile())); 1742 new MockAutoConfirmExtensionInstallUI(browser()->profile()));
1773 1743
1774 scoped_ptr<DownloadTestObserver> observer( 1744 scoped_ptr<DownloadTestObserver> observer(
1775 DangerousDownloadWaiter( 1745 DangerousDownloadWaiter(
1776 browser(), 1, 1746 browser(), 1,
1777 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); 1747 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT));
1778 ui_test_utils::NavigateToURL(browser(), extension_url); 1748 ui_test_utils::NavigateToURL(browser(), extension_url);
1779 1749
1780 observer->WaitForFinished(); 1750 observer->WaitForFinished();
1781 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); 1751 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE));
1782 CheckDownloadStates(1, DownloadItem::COMPLETE); 1752 CheckDownloadStates(1, DownloadItem::COMPLETE);
1783 1753
1784 // Check that the extension was not installed. 1754 // Check that the extension was not installed.
1785 ExtensionService* extension_service = 1755 ExtensionService* extension_service =
1786 browser()->profile()->GetExtensionService(); 1756 browser()->profile()->GetExtensionService();
1787 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false)); 1757 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false));
1788 } 1758 }
1789 1759
1790 // Install a large (100kb) theme. 1760 // Install a large (100kb) theme.
1791 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxLargeTheme) { 1761 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxLargeTheme) {
1792 ASSERT_TRUE(InitialSetup(false));
1793 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kLargeThemePath)); 1762 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kLargeThemePath));
1794 1763
1795 // Install a mock install UI that simulates a user allowing permission to 1764 // Install a mock install UI that simulates a user allowing permission to
1796 // finish the install. 1765 // finish the install.
1797 download_crx_util::SetMockInstallUIForTesting( 1766 download_crx_util::SetMockInstallUIForTesting(
1798 new MockAutoConfirmExtensionInstallUI(browser()->profile())); 1767 new MockAutoConfirmExtensionInstallUI(browser()->profile()));
1799 1768
1800 scoped_ptr<DownloadTestObserver> observer( 1769 scoped_ptr<DownloadTestObserver> observer(
1801 DangerousDownloadWaiter( 1770 DangerousDownloadWaiter(
1802 browser(), 1, 1771 browser(), 1,
(...skipping 14 matching lines...) Expand all
1817 ASSERT_TRUE(extension_service->GetExtensionById(kLargeThemeCrxId, false)); 1786 ASSERT_TRUE(extension_service->GetExtensionById(kLargeThemeCrxId, false));
1818 } 1787 }
1819 1788
1820 // Sort download items by db_handle. 1789 // Sort download items by db_handle.
1821 static bool DownloadItemSorter(DownloadItem* d1, DownloadItem* d2) { 1790 static bool DownloadItemSorter(DownloadItem* d1, DownloadItem* d2) {
1822 return d1->GetDbHandle() < d2->GetDbHandle(); 1791 return d1->GetDbHandle() < d2->GetDbHandle();
1823 } 1792 }
1824 1793
1825 // Confirm that searching through the history works properly 1794 // Confirm that searching through the history works properly
1826 IN_PROC_BROWSER_TEST_F(DownloadTest, SearchDownloads) { 1795 IN_PROC_BROWSER_TEST_F(DownloadTest, SearchDownloads) {
1827 ASSERT_TRUE(InitialSetup(false));
1828
1829 // Downloads to populate history with. 1796 // Downloads to populate history with.
1830 base::Time current(base::Time::Now()); 1797 base::Time current(base::Time::Now());
1831 DownloadPersistentStoreInfo population_entries[] = { 1798 DownloadPersistentStoreInfo population_entries[] = {
1832 DownloadPersistentStoreInfo( 1799 DownloadPersistentStoreInfo(
1833 FilePath(FILE_PATH_LITERAL("/path/to/file")), 1800 FilePath(FILE_PATH_LITERAL("/path/to/file")),
1834 GURL("http://www.google.com/fantasy_download"), 1801 GURL("http://www.google.com/fantasy_download"),
1835 GURL(""), 1802 GURL(""),
1836 current - base::TimeDelta::FromMinutes(5), 1803 current - base::TimeDelta::FromMinutes(5),
1837 current, 1804 current,
1838 128, 1805 128,
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
1944 ASSERT_EQ(2u, search_results.size()); 1911 ASSERT_EQ(2u, search_results.size());
1945 std::sort(search_results.begin(), search_results.end(), 1912 std::sort(search_results.begin(), search_results.end(),
1946 DownloadItemSorter); 1913 DownloadItemSorter);
1947 EXPECT_EQ(2, search_results[0]->GetDbHandle()); 1914 EXPECT_EQ(2, search_results[0]->GetDbHandle());
1948 EXPECT_EQ(3, search_results[1]->GetDbHandle()); 1915 EXPECT_EQ(3, search_results[1]->GetDbHandle());
1949 search_results.clear(); 1916 search_results.clear();
1950 } 1917 }
1951 1918
1952 // Tests for download initiation functions. 1919 // Tests for download initiation functions.
1953 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrl) { 1920 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrl) {
1954 ASSERT_TRUE(InitialSetup(false));
1955 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1921 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1956 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1922 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1957 1923
1958 // DownloadUrl always prompts; return acceptance of whatever it prompts. 1924 // DownloadUrl always prompts; return acceptance of whatever it prompts.
1959 NullSelectFile(browser()); 1925 NullSelectFile(browser());
1960 1926
1961 WebContents* web_contents = browser()->GetSelectedWebContents(); 1927 WebContents* web_contents = browser()->GetSelectedWebContents();
1962 ASSERT_TRUE(web_contents); 1928 ASSERT_TRUE(web_contents);
1963 1929
1964 DownloadTestObserver* observer( 1930 DownloadTestObserver* observer(
(...skipping 11 matching lines...) Expand all
1976 CheckDownloadStates(1, DownloadItem::COMPLETE); 1942 CheckDownloadStates(1, DownloadItem::COMPLETE);
1977 EXPECT_TRUE(observer->select_file_dialog_seen()); 1943 EXPECT_TRUE(observer->select_file_dialog_seen());
1978 1944
1979 // Check state. 1945 // Check state.
1980 EXPECT_EQ(1, browser()->tab_count()); 1946 EXPECT_EQ(1, browser()->tab_count());
1981 ASSERT_TRUE(CheckDownload(browser(), file, file)); 1947 ASSERT_TRUE(CheckDownload(browser(), file, file));
1982 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); 1948 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
1983 } 1949 }
1984 1950
1985 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrlToPath) { 1951 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrlToPath) {
1986 ASSERT_TRUE(InitialSetup(false));
1987 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); 1952 FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
1988 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); 1953 GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
1989 1954
1990 WebContents* web_contents = browser()->GetSelectedWebContents(); 1955 WebContents* web_contents = browser()->GetSelectedWebContents();
1991 ASSERT_TRUE(web_contents); 1956 ASSERT_TRUE(web_contents);
1992 1957
1993 ScopedTempDir other_directory; 1958 ScopedTempDir other_directory;
1994 ASSERT_TRUE(other_directory.CreateUniqueTempDir()); 1959 ASSERT_TRUE(other_directory.CreateUniqueTempDir());
1995 FilePath target_file_full_path 1960 FilePath target_file_full_path
1996 = other_directory.path().Append(file.BaseName()); 1961 = other_directory.path().Append(file.BaseName());
(...skipping 12 matching lines...) Expand all
2009 ASSERT_TRUE(CheckDownloadFullPaths(browser(), 1974 ASSERT_TRUE(CheckDownloadFullPaths(browser(),
2010 target_file_full_path, 1975 target_file_full_path,
2011 OriginFile(file))); 1976 OriginFile(file)));
2012 1977
2013 // Temporary downloads won't be visible. 1978 // Temporary downloads won't be visible.
2014 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); 1979 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible());
2015 } 1980 }
2016 1981
2017 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaGet) { 1982 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaGet) {
2018 // Do initial setup. 1983 // Do initial setup.
2019 ASSERT_TRUE(InitialSetup(false));
2020 ASSERT_TRUE(test_server()->Start()); 1984 ASSERT_TRUE(test_server()->Start());
2021 NullSelectFile(browser()); 1985 NullSelectFile(browser());
2022 std::vector<DownloadItem*> download_items; 1986 std::vector<DownloadItem*> download_items;
2023 GetDownloads(browser(), &download_items); 1987 GetDownloads(browser(), &download_items);
2024 ASSERT_TRUE(download_items.empty()); 1988 ASSERT_TRUE(download_items.empty());
2025 1989
2026 // Navigate to a non-HTML resource. The resource also has 1990 // Navigate to a non-HTML resource. The resource also has
2027 // Cache-Control: no-cache set, which normally requires revalidation 1991 // Cache-Control: no-cache set, which normally requires revalidation
2028 // each time. 1992 // each time.
2029 GURL url = test_server()->GetURL("files/downloads/image.jpg"); 1993 GURL url = test_server()->GetURL("files/downloads/image.jpg");
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
2071 download_items.clear(); 2035 download_items.clear();
2072 GetDownloads(browser(), &download_items); 2036 GetDownloads(browser(), &download_items);
2073 EXPECT_TRUE(waiter_context_menu->select_file_dialog_seen()); 2037 EXPECT_TRUE(waiter_context_menu->select_file_dialog_seen());
2074 ASSERT_EQ(2u, download_items.size()); 2038 ASSERT_EQ(2u, download_items.size());
2075 ASSERT_EQ(url, download_items[0]->GetOriginalUrl()); 2039 ASSERT_EQ(url, download_items[0]->GetOriginalUrl());
2076 ASSERT_EQ(url, download_items[1]->GetOriginalUrl()); 2040 ASSERT_EQ(url, download_items[1]->GetOriginalUrl());
2077 } 2041 }
2078 2042
2079 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaPost) { 2043 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaPost) {
2080 // Do initial setup. 2044 // Do initial setup.
2081 ASSERT_TRUE(InitialSetup(false));
2082 ASSERT_TRUE(test_server()->Start()); 2045 ASSERT_TRUE(test_server()->Start());
2083 NullSelectFile(browser()); 2046 NullSelectFile(browser());
2084 std::vector<DownloadItem*> download_items; 2047 std::vector<DownloadItem*> download_items;
2085 GetDownloads(browser(), &download_items); 2048 GetDownloads(browser(), &download_items);
2086 ASSERT_TRUE(download_items.empty()); 2049 ASSERT_TRUE(download_items.empty());
2087 2050
2088 // Navigate to a form page. 2051 // Navigate to a form page.
2089 GURL form_url = test_server()->GetURL( 2052 GURL form_url = test_server()->GetURL(
2090 "files/downloads/form_page_to_post.html"); 2053 "files/downloads/form_page_to_post.html");
2091 ASSERT_TRUE(form_url.is_valid()); 2054 ASSERT_TRUE(form_url.is_valid());
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
2194 }, 2157 },
2195 { // Navigated download with 400 error. 2158 { // Navigated download with 400 error.
2196 "zip_file_not_found.zip", 2159 "zip_file_not_found.zip",
2197 DOWNLOAD_NAVIGATE, 2160 DOWNLOAD_NAVIGATE,
2198 content::DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED, 2161 content::DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED,
2199 false, 2162 false,
2200 false 2163 false
2201 } 2164 }
2202 }; 2165 };
2203 2166
2204 // Do initial setup.
2205 ASSERT_TRUE(InitialSetup(false));
2206
2207 DownloadFilesCheckErrors(ARRAYSIZE_UNSAFE(download_info), download_info); 2167 DownloadFilesCheckErrors(ARRAYSIZE_UNSAFE(download_info), download_info);
2208 } 2168 }
2209 2169
2210 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadErrorsFile) { 2170 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadErrorsFile) {
2211 FileErrorInjectInfo error_info[] = { 2171 FileErrorInjectInfo error_info[] = {
2212 { // Navigated download with injected "Disk full" error in Initialize(). 2172 { // Navigated download with injected "Disk full" error in Initialize().
2213 { "a_zip_file.zip", 2173 { "a_zip_file.zip",
2214 DOWNLOAD_NAVIGATE, 2174 DOWNLOAD_NAVIGATE,
2215 content::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE, 2175 content::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE,
2216 1 2176 1
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
2403 true 2363 true
2404 } 2364 }
2405 }; 2365 };
2406 2366
2407 DownloadFilesToReadonlyFolder(ARRAYSIZE_UNSAFE(download_info), download_info); 2367 DownloadFilesToReadonlyFolder(ARRAYSIZE_UNSAFE(download_info), download_info);
2408 } 2368 }
2409 2369
2410 // Test that we show a dangerous downloads warning for a dangerous file 2370 // Test that we show a dangerous downloads warning for a dangerous file
2411 // downloaded through a blob: URL. 2371 // downloaded through a blob: URL.
2412 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadDangerousBlobData) { 2372 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadDangerousBlobData) {
2413 ASSERT_TRUE(InitialSetup(false));
2414
2415 #if defined(OS_WIN) 2373 #if defined(OS_WIN)
2416 // On Windows, if SafeBrowsing is enabled, certain file types (.exe, .cab, 2374 // On Windows, if SafeBrowsing is enabled, certain file types (.exe, .cab,
2417 // .msi) will be handled by the DownloadProtectionService. However, if the URL 2375 // .msi) will be handled by the DownloadProtectionService. However, if the URL
2418 // is non-standard (e.g. blob:) then those files won't be handled by the 2376 // is non-standard (e.g. blob:) then those files won't be handled by the
2419 // DPS. We should be showing the dangerous download warning for any file 2377 // DPS. We should be showing the dangerous download warning for any file
2420 // considered dangerous and isn't handled by the DPS. 2378 // considered dangerous and isn't handled by the DPS.
2421 const char kFilename[] = "foo.exe"; 2379 const char kFilename[] = "foo.exe";
2422 #else 2380 #else
2423 const char kFilename[] = "foo.jar"; 2381 const char kFilename[] = "foo.jar";
2424 #endif 2382 #endif
2425 2383
2426 std::string path("files/downloads/download-dangerous-blob.html?filename="); 2384 std::string path("files/downloads/download-dangerous-blob.html?filename=");
2427 path += kFilename; 2385 path += kFilename;
2428 2386
2429 // Need to use http urls because the blob js doesn't work on file urls for 2387 // Need to use http urls because the blob js doesn't work on file urls for
2430 // security reasons. 2388 // security reasons.
2431 ASSERT_TRUE(test_server()->Start()); 2389 ASSERT_TRUE(test_server()->Start());
2432 GURL url(test_server()->GetURL(path)); 2390 GURL url(test_server()->GetURL(path));
2433 2391
2434 DownloadTestObserver* observer(DangerousDownloadWaiter( 2392 DownloadTestObserver* observer(DangerousDownloadWaiter(
2435 browser(), 1, DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); 2393 browser(), 1, DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT));
2436 ui_test_utils::NavigateToURL(browser(), url); 2394 ui_test_utils::NavigateToURL(browser(), url);
2437 observer->WaitForFinished(); 2395 observer->WaitForFinished();
2438 2396
2439 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); 2397 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE));
2440 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); 2398 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen());
2441 } 2399 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698