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

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

Issue 1409163006: Migrating tests to use EmbeddedTestServer (/chrome/browser misc) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 5 years, 1 month 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
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/command_line.h" 9 #include "base/command_line.h"
10 #include "base/files/file.h" 10 #include "base/files/file.h"
(...skipping 833 matching lines...) Expand 10 before | Expand all | Expand 10 after
844 if (memcmp(file_contents.c_str(), value.c_str(), expected_size) != 0) 844 if (memcmp(file_contents.c_str(), value.c_str(), expected_size) != 0)
845 return false; 845 return false;
846 846
847 return true; 847 return true;
848 } 848 }
849 849
850 // Attempts to download a file, based on information in |download_info|. 850 // Attempts to download a file, based on information in |download_info|.
851 // If a Select File dialog opens, will automatically choose the default. 851 // If a Select File dialog opens, will automatically choose the default.
852 void DownloadFilesCheckErrorsSetup() { 852 void DownloadFilesCheckErrorsSetup() {
853 embedded_test_server()->ServeFilesFromDirectory(GetTestDataDirectory()); 853 embedded_test_server()->ServeFilesFromDirectory(GetTestDataDirectory());
854 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); 854 ASSERT_TRUE(embedded_test_server()->Start());
855 std::vector<DownloadItem*> download_items; 855 std::vector<DownloadItem*> download_items;
856 GetDownloads(browser(), &download_items); 856 GetDownloads(browser(), &download_items);
857 ASSERT_TRUE(download_items.empty()); 857 ASSERT_TRUE(download_items.empty());
858 858
859 EnableFileChooser(true); 859 EnableFileChooser(true);
860 } 860 }
861 861
862 void DownloadFilesCheckErrorsLoopBody(const DownloadInfo& download_info, 862 void DownloadFilesCheckErrorsLoopBody(const DownloadInfo& download_info,
863 size_t i) { 863 size_t i) {
864 SCOPED_TRACE( 864 SCOPED_TRACE(
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
1222 new net::test_server::BasicHttpResponse()); 1222 new net::test_server::BasicHttpResponse());
1223 response->set_content_type(request.relative_url.substr(1)); 1223 response->set_content_type(request.relative_url.substr(1));
1224 response->set_code(net::HTTP_OK); 1224 response->set_code(net::HTTP_OK);
1225 response->set_content("ooogaboogaboogabooga"); 1225 response->set_content("ooogaboogaboogabooga");
1226 return response.Pass(); 1226 return response.Pass();
1227 } 1227 }
1228 1228
1229 IN_PROC_BROWSER_TEST_F(DownloadTest, MimeTypesToShowNotDownload) { 1229 IN_PROC_BROWSER_TEST_F(DownloadTest, MimeTypesToShowNotDownload) {
1230 embedded_test_server()->RegisterRequestHandler( 1230 embedded_test_server()->RegisterRequestHandler(
1231 base::Bind(&RespondWithContentTypeHandler)); 1231 base::Bind(&RespondWithContentTypeHandler));
1232 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); 1232 ASSERT_TRUE(embedded_test_server()->Start());
1233 1233
1234 // These files should all be displayed in the browser. 1234 // These files should all be displayed in the browser.
1235 const char* mime_types[] = { 1235 const char* mime_types[] = {
1236 // It is unclear whether to display text/css or download it. 1236 // It is unclear whether to display text/css or download it.
1237 // Firefox 3: Display 1237 // Firefox 3: Display
1238 // Internet Explorer 7: Download 1238 // Internet Explorer 7: Download
1239 // Safari 3.2: Download 1239 // Safari 3.2: Download
1240 // We choose to match Firefox due to the lot of complains 1240 // We choose to match Firefox due to the lot of complains
1241 // from the users if css files are downloaded: 1241 // from the users if css files are downloaded:
1242 // http://code.google.com/p/chromium/issues/detail?id=7192 1242 // http://code.google.com/p/chromium/issues/detail?id=7192
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after
1692 std::string(), 1692 std::string(),
1693 std::string(), 1693 std::string(),
1694 std::string(), 1694 std::string(),
1695 std::string(), 1695 std::string(),
1696 std::string())); 1696 std::string()));
1697 1697
1698 // We use the server so that we can get a redirect and test url_chain 1698 // We use the server so that we can get a redirect and test url_chain
1699 // persistence. 1699 // persistence.
1700 embedded_test_server()->RegisterRequestHandler( 1700 embedded_test_server()->RegisterRequestHandler(
1701 base::Bind(&ServerRedirectRequestHandler)); 1701 base::Bind(&ServerRedirectRequestHandler));
1702 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); 1702 ASSERT_TRUE(embedded_test_server()->Start());
1703 GURL redirect_url = 1703 GURL redirect_url =
1704 embedded_test_server()->GetURL("/a?" + download_url.spec()); 1704 embedded_test_server()->GetURL("/a?" + download_url.spec());
1705 1705
1706 // Download the url and wait until the object has been stored. 1706 // Download the url and wait until the object has been stored.
1707 base::Time start(base::Time::Now()); 1707 base::Time start(base::Time::Now());
1708 HistoryObserver observer(browser()->profile()); 1708 HistoryObserver observer(browser()->profile());
1709 observer.SetFilterCallback(base::Bind(&HasDataAndName)); 1709 observer.SetFilterCallback(base::Bind(&HasDataAndName));
1710 ui_test_utils::NavigateToURL(browser(), redirect_url); 1710 ui_test_utils::NavigateToURL(browser(), redirect_url);
1711 observer.WaitForStored(); 1711 observer.WaitForStored();
1712 1712
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
2160 // visible; wait for auto-open and confirm not visible. 2160 // visible; wait for auto-open and confirm not visible.
2161 std::vector<DownloadItem*> downloads; 2161 std::vector<DownloadItem*> downloads;
2162 DownloadManagerForBrowser(browser())->GetAllDownloads(&downloads); 2162 DownloadManagerForBrowser(browser())->GetAllDownloads(&downloads);
2163 ASSERT_EQ(1u, downloads.size()); 2163 ASSERT_EQ(1u, downloads.size());
2164 content::DownloadUpdatedObserver( 2164 content::DownloadUpdatedObserver(
2165 downloads[0], base::Bind(&WasAutoOpened)).WaitForEvent(); 2165 downloads[0], base::Bind(&WasAutoOpened)).WaitForEvent();
2166 } 2166 }
2167 2167
2168 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaGet) { 2168 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaGet) {
2169 embedded_test_server()->ServeFilesFromDirectory(GetTestDataDirectory()); 2169 embedded_test_server()->ServeFilesFromDirectory(GetTestDataDirectory());
2170 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); 2170 ASSERT_TRUE(embedded_test_server()->Start());
2171 EnableFileChooser(true); 2171 EnableFileChooser(true);
2172 std::vector<DownloadItem*> download_items; 2172 std::vector<DownloadItem*> download_items;
2173 GetDownloads(browser(), &download_items); 2173 GetDownloads(browser(), &download_items);
2174 ASSERT_TRUE(download_items.empty()); 2174 ASSERT_TRUE(download_items.empty());
2175 2175
2176 // Navigate to a non-HTML resource. The resource also has 2176 // Navigate to a non-HTML resource. The resource also has
2177 // Cache-Control: no-cache set, which normally requires revalidation 2177 // Cache-Control: no-cache set, which normally requires revalidation
2178 // each time. 2178 // each time.
2179 GURL url = embedded_test_server()->GetURL("/downloads/image.jpg"); 2179 GURL url = embedded_test_server()->GetURL("/downloads/image.jpg");
2180 ASSERT_TRUE(url.is_valid()); 2180 ASSERT_TRUE(url.is_valid());
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
2239 response.reset(new net::test_server::BasicHttpResponse()); 2239 response.reset(new net::test_server::BasicHttpResponse());
2240 response->set_code(net::HTTP_NOT_FOUND); 2240 response->set_code(net::HTTP_NOT_FOUND);
2241 } 2241 }
2242 return response.Pass(); 2242 return response.Pass();
2243 } 2243 }
2244 2244
2245 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaPost) { 2245 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaPost) {
2246 embedded_test_server()->RegisterRequestHandler( 2246 embedded_test_server()->RegisterRequestHandler(
2247 base::Bind(&FilterPostOnlyURLsHandler)); 2247 base::Bind(&FilterPostOnlyURLsHandler));
2248 embedded_test_server()->ServeFilesFromDirectory(GetTestDataDirectory()); 2248 embedded_test_server()->ServeFilesFromDirectory(GetTestDataDirectory());
2249 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); 2249 ASSERT_TRUE(embedded_test_server()->Start());
2250 EnableFileChooser(true); 2250 EnableFileChooser(true);
2251 std::vector<DownloadItem*> download_items; 2251 std::vector<DownloadItem*> download_items;
2252 GetDownloads(browser(), &download_items); 2252 GetDownloads(browser(), &download_items);
2253 ASSERT_TRUE(download_items.empty()); 2253 ASSERT_TRUE(download_items.empty());
2254 2254
2255 // Navigate to a form page. 2255 // Navigate to a form page.
2256 GURL form_url = 2256 GURL form_url =
2257 embedded_test_server()->GetURL("/downloads/form_page_to_post.html"); 2257 embedded_test_server()->GetURL("/downloads/form_page_to_post.html");
2258 ASSERT_TRUE(form_url.is_valid()); 2258 ASSERT_TRUE(form_url.is_valid());
2259 ui_test_utils::NavigateToURL(browser(), form_url); 2259 ui_test_utils::NavigateToURL(browser(), form_url);
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
2628 auto referrer_header = request.headers.find(kReferrerHeader); 2628 auto referrer_header = request.headers.find(kReferrerHeader);
2629 if (referrer_header != request.headers.end()) 2629 if (referrer_header != request.headers.end())
2630 response->set_content(referrer_header->second); 2630 response->set_content(referrer_header->second);
2631 return response.Pass(); 2631 return response.Pass();
2632 } 2632 }
2633 2633
2634 IN_PROC_BROWSER_TEST_F(DownloadTest, LoadURLExternallyReferrerPolicy) { 2634 IN_PROC_BROWSER_TEST_F(DownloadTest, LoadURLExternallyReferrerPolicy) {
2635 embedded_test_server()->RegisterRequestHandler( 2635 embedded_test_server()->RegisterRequestHandler(
2636 base::Bind(&EchoReferrerRequestHandler)); 2636 base::Bind(&EchoReferrerRequestHandler));
2637 embedded_test_server()->ServeFilesFromDirectory(GetTestDataDirectory()); 2637 embedded_test_server()->ServeFilesFromDirectory(GetTestDataDirectory());
2638 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); 2638 ASSERT_TRUE(embedded_test_server()->Start());
2639 EnableFileChooser(true); 2639 EnableFileChooser(true);
2640 std::vector<DownloadItem*> download_items; 2640 std::vector<DownloadItem*> download_items;
2641 GetDownloads(browser(), &download_items); 2641 GetDownloads(browser(), &download_items);
2642 ASSERT_TRUE(download_items.empty()); 2642 ASSERT_TRUE(download_items.empty());
2643 2643
2644 // Navigate to a page with a referrer policy and a link on it. The link points 2644 // Navigate to a page with a referrer policy and a link on it. The link points
2645 // to /echoreferrer. 2645 // to /echoreferrer.
2646 GURL url = embedded_test_server()->GetURL("/downloads/referrer_policy.html"); 2646 GURL url = embedded_test_server()->GetURL("/downloads/referrer_policy.html");
2647 ASSERT_TRUE(url.is_valid()); 2647 ASSERT_TRUE(url.is_valid());
2648 ui_test_utils::NavigateToURL(browser(), url); 2648 ui_test_utils::NavigateToURL(browser(), url);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2680 base::FilePath file(download_items[0]->GetTargetFilePath()); 2680 base::FilePath file(download_items[0]->GetTargetFilePath());
2681 std::string expected_contents = embedded_test_server()->GetURL("/").spec(); 2681 std::string expected_contents = embedded_test_server()->GetURL("/").spec();
2682 ASSERT_TRUE(VerifyFile(file, expected_contents, expected_contents.length())); 2682 ASSERT_TRUE(VerifyFile(file, expected_contents, expected_contents.length()));
2683 } 2683 }
2684 2684
2685 // This test ensures that the Referer header is properly sanitized when 2685 // This test ensures that the Referer header is properly sanitized when
2686 // Save Link As is chosen from the context menu. 2686 // Save Link As is chosen from the context menu.
2687 IN_PROC_BROWSER_TEST_F(DownloadTest, SaveLinkAsReferrerPolicyOrigin) { 2687 IN_PROC_BROWSER_TEST_F(DownloadTest, SaveLinkAsReferrerPolicyOrigin) {
2688 embedded_test_server()->RegisterRequestHandler( 2688 embedded_test_server()->RegisterRequestHandler(
2689 base::Bind(&EchoReferrerRequestHandler)); 2689 base::Bind(&EchoReferrerRequestHandler));
2690 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); 2690 ASSERT_TRUE(embedded_test_server()->Start());
2691 EnableFileChooser(true); 2691 EnableFileChooser(true);
2692 std::vector<DownloadItem*> download_items; 2692 std::vector<DownloadItem*> download_items;
2693 GetDownloads(browser(), &download_items); 2693 GetDownloads(browser(), &download_items);
2694 ASSERT_TRUE(download_items.empty()); 2694 ASSERT_TRUE(download_items.empty());
2695 2695
2696 // Navigate to the initial page, where Save Link As will be executed. 2696 // Navigate to the initial page, where Save Link As will be executed.
2697 GURL url = net::URLRequestMockHTTPJob::GetMockHttpsUrl( 2697 GURL url = net::URLRequestMockHTTPJob::GetMockHttpsUrl(
2698 std::string("referrer_policy/referrer-policy-start.html?policy=origin") + 2698 std::string("referrer_policy/referrer-policy-start.html?policy=origin") +
2699 "&redirect=" + embedded_test_server()->GetURL("/echoreferrer").spec() + 2699 "&redirect=" + embedded_test_server()->GetURL("/echoreferrer").spec() +
2700 "&link=true&target="); 2700 "&link=true&target=");
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
2737 std::string expected_contents = 2737 std::string expected_contents =
2738 net::URLRequestMockHTTPJob::GetMockHttpsUrl(std::string()).spec(); 2738 net::URLRequestMockHTTPJob::GetMockHttpsUrl(std::string()).spec();
2739 EXPECT_TRUE(VerifyFile(file, expected_contents, expected_contents.length())); 2739 EXPECT_TRUE(VerifyFile(file, expected_contents, expected_contents.length()));
2740 } 2740 }
2741 2741
2742 // This test ensures that the Referer header is properly sanitized when 2742 // This test ensures that the Referer header is properly sanitized when
2743 // Save Image As is chosen from the context menu. 2743 // Save Image As is chosen from the context menu.
2744 IN_PROC_BROWSER_TEST_F(DownloadTest, SaveImageAsReferrerPolicyDefault) { 2744 IN_PROC_BROWSER_TEST_F(DownloadTest, SaveImageAsReferrerPolicyDefault) {
2745 embedded_test_server()->RegisterRequestHandler( 2745 embedded_test_server()->RegisterRequestHandler(
2746 base::Bind(&EchoReferrerRequestHandler)); 2746 base::Bind(&EchoReferrerRequestHandler));
2747 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); 2747 ASSERT_TRUE(embedded_test_server()->Start());
2748 EnableFileChooser(true); 2748 EnableFileChooser(true);
2749 std::vector<DownloadItem*> download_items; 2749 std::vector<DownloadItem*> download_items;
2750 GetDownloads(browser(), &download_items); 2750 GetDownloads(browser(), &download_items);
2751 ASSERT_TRUE(download_items.empty()); 2751 ASSERT_TRUE(download_items.empty());
2752 2752
2753 GURL url = net::URLRequestMockHTTPJob::GetMockHttpsUrl("title1.html"); 2753 GURL url = net::URLRequestMockHTTPJob::GetMockHttpsUrl("title1.html");
2754 GURL img_url = embedded_test_server()->GetURL("/echoreferrer"); 2754 GURL img_url = embedded_test_server()->GetURL("/echoreferrer");
2755 ASSERT_TRUE(url.is_valid()); 2755 ASSERT_TRUE(url.is_valid());
2756 ui_test_utils::NavigateToURL(browser(), url); 2756 ui_test_utils::NavigateToURL(browser(), url);
2757 2757
(...skipping 916 matching lines...) Expand 10 before | Expand all | Expand 10 after
3674 3674
3675 scoped_ptr<content::DownloadTestObserver> observer(DangerousDownloadWaiter( 3675 scoped_ptr<content::DownloadTestObserver> observer(DangerousDownloadWaiter(
3676 browser(), 1, content::DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_DENY)); 3676 browser(), 1, content::DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_DENY));
3677 ui_test_utils::NavigateToURL(browser(), extension_url); 3677 ui_test_utils::NavigateToURL(browser(), extension_url);
3678 3678
3679 observer->WaitForFinished(); 3679 observer->WaitForFinished();
3680 3680
3681 // Download shelf should close. 3681 // Download shelf should close.
3682 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); 3682 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible());
3683 } 3683 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698