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 "chrome/browser/download/download_browsertest.h" | 5 #include "chrome/browser/download/download_browsertest.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 #include <set> | 10 #include <set> |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 #include "content/public/test/test_navigation_observer.h" | 106 #include "content/public/test/test_navigation_observer.h" |
107 #include "extensions/browser/extension_dialog_auto_confirm.h" | 107 #include "extensions/browser/extension_dialog_auto_confirm.h" |
108 #include "extensions/browser/extension_system.h" | 108 #include "extensions/browser/extension_system.h" |
109 #include "net/base/filename_util.h" | 109 #include "net/base/filename_util.h" |
110 #include "net/dns/mock_host_resolver.h" | 110 #include "net/dns/mock_host_resolver.h" |
111 #include "net/test/embedded_test_server/embedded_test_server.h" | 111 #include "net/test/embedded_test_server/embedded_test_server.h" |
112 #include "net/test/embedded_test_server/http_request.h" | 112 #include "net/test/embedded_test_server/http_request.h" |
113 #include "net/test/embedded_test_server/http_response.h" | 113 #include "net/test/embedded_test_server/http_response.h" |
114 #include "net/test/url_request/url_request_mock_http_job.h" | 114 #include "net/test/url_request/url_request_mock_http_job.h" |
115 #include "net/test/url_request/url_request_slow_download_job.h" | 115 #include "net/test/url_request/url_request_slow_download_job.h" |
| 116 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h" |
116 #include "testing/gtest/include/gtest/gtest.h" | 117 #include "testing/gtest/include/gtest/gtest.h" |
117 #include "ui/base/l10n/l10n_util.h" | 118 #include "ui/base/l10n/l10n_util.h" |
118 #include "ui/base/page_transition_types.h" | 119 #include "ui/base/page_transition_types.h" |
119 | 120 |
120 #if defined(FULL_SAFE_BROWSING) | 121 #if defined(FULL_SAFE_BROWSING) |
121 #include "chrome/browser/safe_browsing/download_feedback_service.h" | 122 #include "chrome/browser/safe_browsing/download_feedback_service.h" |
122 #include "chrome/browser/safe_browsing/download_protection_service.h" | 123 #include "chrome/browser/safe_browsing/download_protection_service.h" |
123 #include "chrome/browser/safe_browsing/test_safe_browsing_service.h" | 124 #include "chrome/browser/safe_browsing/test_safe_browsing_service.h" |
124 #endif | 125 #endif |
125 | 126 |
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
891 | 892 |
892 if (download_info.download_method == DOWNLOAD_DIRECT) { | 893 if (download_info.download_method == DOWNLOAD_DIRECT) { |
893 // Go directly to download. Don't wait for navigation. | 894 // Go directly to download. Don't wait for navigation. |
894 scoped_refptr<content::DownloadTestItemCreationObserver> | 895 scoped_refptr<content::DownloadTestItemCreationObserver> |
895 creation_observer(new content::DownloadTestItemCreationObserver); | 896 creation_observer(new content::DownloadTestItemCreationObserver); |
896 | 897 |
897 std::unique_ptr<DownloadUrlParameters> params( | 898 std::unique_ptr<DownloadUrlParameters> params( |
898 DownloadUrlParameters::CreateForWebContentsMainFrame( | 899 DownloadUrlParameters::CreateForWebContentsMainFrame( |
899 web_contents, starting_url)); | 900 web_contents, starting_url)); |
900 params->set_callback(creation_observer->callback()); | 901 params->set_callback(creation_observer->callback()); |
901 DownloadManagerForBrowser(browser())->DownloadUrl(std::move(params)); | 902 DownloadManagerForBrowser(browser())->DownloadUrl( |
| 903 std::move(params), TRAFFIC_ANNOTATION_FOR_TESTS); |
902 | 904 |
903 // Wait until the item is created, or we have determined that it | 905 // Wait until the item is created, or we have determined that it |
904 // won't be. | 906 // won't be. |
905 creation_observer->WaitForDownloadItemCreation(); | 907 creation_observer->WaitForDownloadItemCreation(); |
906 | 908 |
907 EXPECT_NE(content::DownloadItem::kInvalidId, | 909 EXPECT_NE(content::DownloadItem::kInvalidId, |
908 creation_observer->download_id()); | 910 creation_observer->download_id()); |
909 } else { | 911 } else { |
910 // Navigate to URL normally, wait until done. | 912 // Navigate to URL normally, wait until done. |
911 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( | 913 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( |
(...skipping 816 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1728 ASSERT_TRUE(new_tab); | 1730 ASSERT_TRUE(new_tab); |
1729 ASSERT_TRUE(new_tab->GetController().IsInitialNavigation()); | 1731 ASSERT_TRUE(new_tab->GetController().IsInitialNavigation()); |
1730 browser()->tab_strip_model()->AppendWebContents(new_tab, true); | 1732 browser()->tab_strip_model()->AppendWebContents(new_tab, true); |
1731 EXPECT_EQ(2, browser()->tab_strip_model()->count()); | 1733 EXPECT_EQ(2, browser()->tab_strip_model()->count()); |
1732 | 1734 |
1733 // Download a file in that new tab, having it open a file picker | 1735 // Download a file in that new tab, having it open a file picker |
1734 std::unique_ptr<DownloadUrlParameters> params( | 1736 std::unique_ptr<DownloadUrlParameters> params( |
1735 DownloadUrlParameters::CreateForWebContentsMainFrame( | 1737 DownloadUrlParameters::CreateForWebContentsMainFrame( |
1736 new_tab, slow_download_url)); | 1738 new_tab, slow_download_url)); |
1737 params->set_prompt(true); | 1739 params->set_prompt(true); |
1738 manager->DownloadUrl(std::move(params)); | 1740 manager->DownloadUrl(std::move(params), TRAFFIC_ANNOTATION_FOR_TESTS); |
1739 observer->WaitForFinished(); | 1741 observer->WaitForFinished(); |
1740 | 1742 |
1741 DownloadManager::DownloadVector items; | 1743 DownloadManager::DownloadVector items; |
1742 manager->GetAllDownloads(&items); | 1744 manager->GetAllDownloads(&items); |
1743 ASSERT_NE(0u, items.size()); | 1745 ASSERT_NE(0u, items.size()); |
1744 DownloadItem* item = items[0]; | 1746 DownloadItem* item = items[0]; |
1745 EXPECT_TRUE(item != nullptr); | 1747 EXPECT_TRUE(item != nullptr); |
1746 | 1748 |
1747 // When the download is canceled, the second tab should close. | 1749 // When the download is canceled, the second tab should close. |
1748 EXPECT_EQ(item->GetState(), DownloadItem::CANCELLED); | 1750 EXPECT_EQ(item->GetState(), DownloadItem::CANCELLED); |
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2214 ASSERT_TRUE(web_contents); | 2216 ASSERT_TRUE(web_contents); |
2215 | 2217 |
2216 content::DownloadTestObserver* observer( | 2218 content::DownloadTestObserver* observer( |
2217 new content::DownloadTestObserverTerminal( | 2219 new content::DownloadTestObserverTerminal( |
2218 DownloadManagerForBrowser(browser()), 1, | 2220 DownloadManagerForBrowser(browser()), 1, |
2219 content::DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); | 2221 content::DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); |
2220 std::unique_ptr<DownloadUrlParameters> params( | 2222 std::unique_ptr<DownloadUrlParameters> params( |
2221 DownloadUrlParameters::CreateForWebContentsMainFrame( | 2223 DownloadUrlParameters::CreateForWebContentsMainFrame( |
2222 web_contents, url)); | 2224 web_contents, url)); |
2223 params->set_prompt(true); | 2225 params->set_prompt(true); |
2224 DownloadManagerForBrowser(browser())->DownloadUrl(std::move(params)); | 2226 DownloadManagerForBrowser(browser())->DownloadUrl( |
| 2227 std::move(params), TRAFFIC_ANNOTATION_FOR_TESTS); |
2225 observer->WaitForFinished(); | 2228 observer->WaitForFinished(); |
2226 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 2229 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
2227 CheckDownloadStates(1, DownloadItem::COMPLETE); | 2230 CheckDownloadStates(1, DownloadItem::COMPLETE); |
2228 EXPECT_TRUE(DidShowFileChooser()); | 2231 EXPECT_TRUE(DidShowFileChooser()); |
2229 | 2232 |
2230 // Check state. | 2233 // Check state. |
2231 base::FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 2234 base::FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
2232 EXPECT_EQ(1, browser()->tab_strip_model()->count()); | 2235 EXPECT_EQ(1, browser()->tab_strip_model()->count()); |
2233 ASSERT_TRUE(CheckDownload(browser(), file, file)); | 2236 ASSERT_TRUE(CheckDownload(browser(), file, file)); |
2234 } | 2237 } |
2235 | 2238 |
2236 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrlToPath) { | 2239 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrlToPath) { |
2237 GURL url(URLRequestMockHTTPJob::GetMockUrl(kDownloadTest1Path)); | 2240 GURL url(URLRequestMockHTTPJob::GetMockUrl(kDownloadTest1Path)); |
2238 | 2241 |
2239 WebContents* web_contents = | 2242 WebContents* web_contents = |
2240 browser()->tab_strip_model()->GetActiveWebContents(); | 2243 browser()->tab_strip_model()->GetActiveWebContents(); |
2241 ASSERT_TRUE(web_contents); | 2244 ASSERT_TRUE(web_contents); |
2242 | 2245 |
2243 base::ThreadRestrictions::ScopedAllowIO allow_io; | 2246 base::ThreadRestrictions::ScopedAllowIO allow_io; |
2244 base::FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 2247 base::FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
2245 base::ScopedTempDir other_directory; | 2248 base::ScopedTempDir other_directory; |
2246 ASSERT_TRUE(other_directory.CreateUniqueTempDir()); | 2249 ASSERT_TRUE(other_directory.CreateUniqueTempDir()); |
2247 base::FilePath target_file_full_path = | 2250 base::FilePath target_file_full_path = |
2248 other_directory.GetPath().Append(file.BaseName()); | 2251 other_directory.GetPath().Append(file.BaseName()); |
2249 content::DownloadTestObserver* observer(CreateWaiter(browser(), 1)); | 2252 content::DownloadTestObserver* observer(CreateWaiter(browser(), 1)); |
2250 std::unique_ptr<DownloadUrlParameters> params( | 2253 std::unique_ptr<DownloadUrlParameters> params( |
2251 DownloadUrlParameters::CreateForWebContentsMainFrame( | 2254 DownloadUrlParameters::CreateForWebContentsMainFrame( |
2252 web_contents, url)); | 2255 web_contents, url)); |
2253 params->set_file_path(target_file_full_path); | 2256 params->set_file_path(target_file_full_path); |
2254 DownloadManagerForBrowser(browser())->DownloadUrl(std::move(params)); | 2257 DownloadManagerForBrowser(browser())->DownloadUrl( |
| 2258 std::move(params), TRAFFIC_ANNOTATION_FOR_TESTS); |
2255 observer->WaitForFinished(); | 2259 observer->WaitForFinished(); |
2256 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 2260 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
2257 | 2261 |
2258 // Check state. | 2262 // Check state. |
2259 EXPECT_EQ(1, browser()->tab_strip_model()->count()); | 2263 EXPECT_EQ(1, browser()->tab_strip_model()->count()); |
2260 ASSERT_TRUE(CheckDownloadFullPaths(browser(), | 2264 ASSERT_TRUE(CheckDownloadFullPaths(browser(), |
2261 target_file_full_path, | 2265 target_file_full_path, |
2262 OriginFile(file))); | 2266 OriginFile(file))); |
2263 | 2267 |
2264 // Temporary are treated as auto-opened, and after that open won't be | 2268 // Temporary are treated as auto-opened, and after that open won't be |
(...skipping 16 matching lines...) Expand all Loading... |
2281 base::FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 2285 base::FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
2282 base::ScopedTempDir other_directory; | 2286 base::ScopedTempDir other_directory; |
2283 ASSERT_TRUE(other_directory.CreateUniqueTempDir()); | 2287 ASSERT_TRUE(other_directory.CreateUniqueTempDir()); |
2284 base::FilePath target_file_full_path = | 2288 base::FilePath target_file_full_path = |
2285 other_directory.GetPath().Append(file.BaseName()); | 2289 other_directory.GetPath().Append(file.BaseName()); |
2286 content::DownloadTestObserver* observer(CreateWaiter(browser(), 1)); | 2290 content::DownloadTestObserver* observer(CreateWaiter(browser(), 1)); |
2287 std::unique_ptr<DownloadUrlParameters> params( | 2291 std::unique_ptr<DownloadUrlParameters> params( |
2288 DownloadUrlParameters::CreateForWebContentsMainFrame(web_contents, url)); | 2292 DownloadUrlParameters::CreateForWebContentsMainFrame(web_contents, url)); |
2289 params->set_file_path(target_file_full_path); | 2293 params->set_file_path(target_file_full_path); |
2290 params->set_transient(true); | 2294 params->set_transient(true); |
2291 DownloadManagerForBrowser(browser())->DownloadUrl(std::move(params)); | 2295 DownloadManagerForBrowser(browser())->DownloadUrl( |
| 2296 std::move(params), TRAFFIC_ANNOTATION_FOR_TESTS); |
2292 observer->WaitForFinished(); | 2297 observer->WaitForFinished(); |
2293 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 2298 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
2294 | 2299 |
2295 // Check state. | 2300 // Check state. |
2296 EXPECT_EQ(1, browser()->tab_strip_model()->count()); | 2301 EXPECT_EQ(1, browser()->tab_strip_model()->count()); |
2297 ASSERT_TRUE(CheckDownloadFullPaths(browser(), target_file_full_path, | 2302 ASSERT_TRUE(CheckDownloadFullPaths(browser(), target_file_full_path, |
2298 OriginFile(file))); | 2303 OriginFile(file))); |
2299 | 2304 |
2300 std::vector<DownloadItem*> downloads; | 2305 std::vector<DownloadItem*> downloads; |
2301 DownloadManagerForBrowser(browser())->GetAllDownloads(&downloads); | 2306 DownloadManagerForBrowser(browser())->GetAllDownloads(&downloads); |
(...skipping 1552 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3854 download_manager, 1, | 3859 download_manager, 1, |
3855 content::DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); | 3860 content::DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); |
3856 | 3861 |
3857 // Download and set IsHiddenDownload to true. | 3862 // Download and set IsHiddenDownload to true. |
3858 WebContents* web_contents = | 3863 WebContents* web_contents = |
3859 browser()->tab_strip_model()->GetActiveWebContents(); | 3864 browser()->tab_strip_model()->GetActiveWebContents(); |
3860 std::unique_ptr<DownloadUrlParameters> params( | 3865 std::unique_ptr<DownloadUrlParameters> params( |
3861 DownloadUrlParameters::CreateForWebContentsMainFrame( | 3866 DownloadUrlParameters::CreateForWebContentsMainFrame( |
3862 web_contents, url)); | 3867 web_contents, url)); |
3863 params->set_callback(base::Bind(&SetHiddenDownloadCallback)); | 3868 params->set_callback(base::Bind(&SetHiddenDownloadCallback)); |
3864 download_manager->DownloadUrl(std::move(params)); | 3869 download_manager->DownloadUrl(std::move(params), |
| 3870 TRAFFIC_ANNOTATION_FOR_TESTS); |
3865 observer->WaitForFinished(); | 3871 observer->WaitForFinished(); |
3866 | 3872 |
3867 // Verify that download shelf is not shown. | 3873 // Verify that download shelf is not shown. |
3868 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); | 3874 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
3869 } | 3875 } |
3870 | 3876 |
3871 IN_PROC_BROWSER_TEST_F(DownloadTest, AutoOpenClosesShelf) { | 3877 IN_PROC_BROWSER_TEST_F(DownloadTest, AutoOpenClosesShelf) { |
3872 base::FilePath file(FILE_PATH_LITERAL("download-autoopen.txt")); | 3878 base::FilePath file(FILE_PATH_LITERAL("download-autoopen.txt")); |
3873 GURL url(URLRequestMockHTTPJob::GetMockUrl("download-autoopen.txt")); | 3879 GURL url(URLRequestMockHTTPJob::GetMockUrl("download-autoopen.txt")); |
3874 | 3880 |
(...skipping 17 matching lines...) Expand all Loading... |
3892 browser(), 1, | 3898 browser(), 1, |
3893 content::DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_DENY)); | 3899 content::DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_DENY)); |
3894 ui_test_utils::NavigateToURL(browser(), extension_url); | 3900 ui_test_utils::NavigateToURL(browser(), extension_url); |
3895 | 3901 |
3896 observer->WaitForFinished(); | 3902 observer->WaitForFinished(); |
3897 | 3903 |
3898 // Download shelf should close. | 3904 // Download shelf should close. |
3899 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); | 3905 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
3900 } | 3906 } |
3901 #endif // defined(OS_CHROMEOS) | 3907 #endif // defined(OS_CHROMEOS) |
OLD | NEW |