OLD | NEW |
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 795 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
806 DVLOG(1) << " " << __FUNCTION__ << "()" | 806 DVLOG(1) << " " << __FUNCTION__ << "()" |
807 << " folder = '" << destination_folder.value() << "'"; | 807 << " folder = '" << destination_folder.value() << "'"; |
808 file_util::PermissionRestorer permission_restorer(destination_folder); | 808 file_util::PermissionRestorer permission_restorer(destination_folder); |
809 EXPECT_TRUE(file_util::MakeFileUnwritable(destination_folder)); | 809 EXPECT_TRUE(file_util::MakeFileUnwritable(destination_folder)); |
810 | 810 |
811 for (size_t i = 0; i < count; ++i) { | 811 for (size_t i = 0; i < count; ++i) { |
812 DownloadFilesCheckErrorsLoopBody(download_info[i], i); | 812 DownloadFilesCheckErrorsLoopBody(download_info[i], i); |
813 } | 813 } |
814 } | 814 } |
815 | 815 |
816 bool EnsureNoPendingDownloads() { | |
817 bool result = true; | |
818 BrowserThread::PostTask( | |
819 BrowserThread::IO, FROM_HERE, | |
820 base::Bind(&EnsureNoPendingDownloadJobsOnIO, &result)); | |
821 MessageLoop::current()->Run(); | |
822 return result && DownloadManager::EnsureNoPendingDownloadsForTesting(); | |
823 } | |
824 | |
825 // A mock install prompt that simulates the user allowing an install request. | 816 // A mock install prompt that simulates the user allowing an install request. |
826 void SetAllowMockInstallPrompt() { | 817 void SetAllowMockInstallPrompt() { |
827 gfx::NativeWindow parent = | 818 gfx::NativeWindow parent = |
828 browser()->window() ? browser()->window()->GetNativeWindow() : NULL; | 819 browser()->window() ? browser()->window()->GetNativeWindow() : NULL; |
829 download_crx_util::SetMockInstallPromptForTesting( | 820 download_crx_util::SetMockInstallPromptForTesting( |
830 new MockAutoConfirmExtensionInstallPrompt(parent, | 821 new MockAutoConfirmExtensionInstallPrompt(parent, |
831 browser(), | 822 browser(), |
832 browser()->profile())); | 823 browser()->profile())); |
833 } | 824 } |
834 | 825 |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
981 // download never makes it to the downloads system. | 972 // download never makes it to the downloads system. |
982 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadResourceThrottleCancels) { | 973 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadResourceThrottleCancels) { |
983 // Navigate to a page with the same domain as the file to download. We can't | 974 // Navigate to a page with the same domain as the file to download. We can't |
984 // navigate directly to the file we don't want to download because cross-site | 975 // navigate directly to the file we don't want to download because cross-site |
985 // navigations reset the TabDownloadState. | 976 // navigations reset the TabDownloadState. |
986 FilePath same_site_path(FILE_PATH_LITERAL("download_script.html")); | 977 FilePath same_site_path(FILE_PATH_LITERAL("download_script.html")); |
987 GURL same_site_url(URLRequestMockHTTPJob::GetMockUrl(same_site_path)); | 978 GURL same_site_url(URLRequestMockHTTPJob::GetMockUrl(same_site_path)); |
988 ui_test_utils::NavigateToURL(browser(), same_site_url); | 979 ui_test_utils::NavigateToURL(browser(), same_site_url); |
989 | 980 |
990 // Make sure the initial navigation didn't trigger a download. | 981 // Make sure the initial navigation didn't trigger a download. |
991 EXPECT_TRUE(EnsureNoPendingDownloads()); | 982 std::vector<content::DownloadItem*> items; |
| 983 DownloadManagerForBrowser(browser())->GetAllDownloads(&items); |
| 984 EXPECT_EQ(0u, items.size()); |
992 | 985 |
993 // Disable downloads for the tab. | 986 // Disable downloads for the tab. |
994 WebContents* web_contents = chrome::GetActiveWebContents(browser()); | 987 WebContents* web_contents = chrome::GetActiveWebContents(browser()); |
995 DownloadRequestLimiter::TabDownloadState* tab_download_state = | 988 DownloadRequestLimiter::TabDownloadState* tab_download_state = |
996 g_browser_process->download_request_limiter()->GetDownloadState( | 989 g_browser_process->download_request_limiter()->GetDownloadState( |
997 web_contents, web_contents, true); | 990 web_contents, web_contents, true); |
998 ASSERT_TRUE(tab_download_state); | 991 ASSERT_TRUE(tab_download_state); |
999 tab_download_state->set_download_status( | 992 tab_download_state->set_download_status( |
1000 DownloadRequestLimiter::DOWNLOADS_NOT_ALLOWED); | 993 DownloadRequestLimiter::DOWNLOADS_NOT_ALLOWED); |
1001 | 994 |
(...skipping 18 matching lines...) Expand all Loading... |
1020 | 1013 |
1021 // Check that we did not download the file. | 1014 // Check that we did not download the file. |
1022 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1015 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
1023 FilePath file_path(DestinationFile(browser(), file)); | 1016 FilePath file_path(DestinationFile(browser(), file)); |
1024 EXPECT_FALSE(file_util::PathExists(file_path)); | 1017 EXPECT_FALSE(file_util::PathExists(file_path)); |
1025 | 1018 |
1026 // Check state. | 1019 // Check state. |
1027 EXPECT_EQ(1, browser()->tab_count()); | 1020 EXPECT_EQ(1, browser()->tab_count()); |
1028 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); | 1021 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
1029 | 1022 |
1030 // Verify that there's no pending download. | 1023 // Verify that there's no pending download. The resource throttle |
1031 EXPECT_TRUE(EnsureNoPendingDownloads()); | 1024 // should have deleted it before it created a download item, so it |
| 1025 // shouldn't be available as a cancelled download either. |
| 1026 DownloadManagerForBrowser(browser())->GetAllDownloads(&items); |
| 1027 EXPECT_EQ(0u, items.size()); |
1032 } | 1028 } |
1033 | 1029 |
1034 // Download a 0-size file with a content-disposition header, verify that the | 1030 // Download a 0-size file with a content-disposition header, verify that the |
1035 // download tab opened and the file exists as the filename specified in the | 1031 // download tab opened and the file exists as the filename specified in the |
1036 // header. This also ensures we properly handle empty file downloads. | 1032 // header. This also ensures we properly handle empty file downloads. |
1037 // The download shelf should be visible in the current tab. | 1033 // The download shelf should be visible in the current tab. |
1038 IN_PROC_BROWSER_TEST_F(DownloadTest, ContentDisposition) { | 1034 IN_PROC_BROWSER_TEST_F(DownloadTest, ContentDisposition) { |
1039 FilePath file(FILE_PATH_LITERAL("download-test3.gif")); | 1035 FilePath file(FILE_PATH_LITERAL("download-test3.gif")); |
1040 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1036 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
1041 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif")); | 1037 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif")); |
(...skipping 1193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2235 GetDownloads(browser(), &download_items); | 2231 GetDownloads(browser(), &download_items); |
2236 ASSERT_EQ(1u, download_items.size()); | 2232 ASSERT_EQ(1u, download_items.size()); |
2237 ASSERT_EQ(test_server()->GetURL("echoheader?Referer"), | 2233 ASSERT_EQ(test_server()->GetURL("echoheader?Referer"), |
2238 download_items[0]->GetOriginalUrl()); | 2234 download_items[0]->GetOriginalUrl()); |
2239 | 2235 |
2240 // Check that the file contains the expected referrer. | 2236 // Check that the file contains the expected referrer. |
2241 FilePath file(download_items[0]->GetFullPath()); | 2237 FilePath file(download_items[0]->GetFullPath()); |
2242 std::string expected_contents = test_server()->GetURL("").spec(); | 2238 std::string expected_contents = test_server()->GetURL("").spec(); |
2243 ASSERT_TRUE(VerifyFile(file, expected_contents, expected_contents.length())); | 2239 ASSERT_TRUE(VerifyFile(file, expected_contents, expected_contents.length())); |
2244 } | 2240 } |
OLD | NEW |