From 9360f32192a0ae04dfd8e2573097a2fdedbed325 Mon Sep 17 00:00:00 2001 From: "mmenke@chromium.org" Date: Mon, 28 Feb 2011 23:19:09 +0000 Subject: Revert 76250 - Beef up prerendering tests a little. Adds PrerenderBrowserTest.PrerenderNoSSLReferrer, which checks that there is no referrer when an SSL page prerenders a non-SSL page. Also modifies PrerenderBrowserTest.PrerenderRedirect to check that plugins are delay loaded in addition to making sure the prerendered page is used. BUG=73170 TEST=PrerenderBrowserTest.PrerenderNoSSLReferrer, PrerenderBrowserTest.PrerenderRedirect Review URL: http://codereview.chromium.org/6580041 TBR=mmenke@chromium.org Review URL: http://codereview.chromium.org/6598055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76304 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/prerender/prerender_browsertest.cc | 52 +++++----------------- .../test/data/prerender/prerender_no_referrer.html | 22 --------- chrome/test/data/prerender/prerender_redirect.html | 4 +- .../prerender/prerender_redirect_to_https.html | 10 +++++ 4 files changed, 23 insertions(+), 65 deletions(-) delete mode 100644 chrome/test/data/prerender/prerender_no_referrer.html create mode 100644 chrome/test/data/prerender/prerender_redirect_to_https.html diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc index 3cf31bd..1643fd1 100644 --- a/chrome/browser/prerender/prerender_browsertest.cc +++ b/chrome/browser/prerender/prerender_browsertest.cc @@ -30,15 +30,6 @@ namespace prerender { namespace { -bool CreateRedirect(const std::string& dest_url, std::string* redirect_path) { - std::vector replacement_text; - replacement_text.push_back(make_pair("REPLACE_WITH_URL", dest_url)); - return net::TestServer::GetFilePathWithReplacements( - "prerender_redirect.html", - replacement_text, - redirect_path); -} - // PrerenderContents that stops the UI message loop on DidStopLoading(). class TestPrerenderContents : public PrerenderContents { public: @@ -101,7 +92,7 @@ class WaitForLoadPrerenderContentsFactory : public PrerenderContents::Factory { class PrerenderBrowserTest : public InProcessBrowserTest { public: - PrerenderBrowserTest() : use_https_src_server_(false) { + PrerenderBrowserTest() { EnableDOMAutomation(); } @@ -135,17 +126,7 @@ class PrerenderBrowserTest : public InProcessBrowserTest { "files/prerender/prerender_loader.html", replacement_text, &replacement_path)); - - net::TestServer* src_server = test_server(); - scoped_ptr https_src_server; - if (use_https_src_server_) { - https_src_server.reset( - new net::TestServer(net::TestServer::TYPE_HTTPS, - FilePath(FILE_PATH_LITERAL("chrome/test/data")))); - ASSERT_TRUE(https_src_server->Start()); - src_server = https_src_server.get(); - } - GURL src_url = src_server->GetURL(replacement_path); + GURL src_url = test_server()->GetURL(replacement_path); Profile* profile = browser()->GetSelectedTabContents()->profile(); PrerenderManager* prerender_manager = profile->GetPrerenderManager(); @@ -221,13 +202,8 @@ class PrerenderBrowserTest : public InProcessBrowserTest { EXPECT_TRUE(display_test_result); } - void set_use_https_src(bool use_https_src_server) { - use_https_src_server_ = use_https_src_server; - } - private: GURL dest_url_; - bool use_https_src_server_; }; // Checks that a page is correctly prerendered in the case of a @@ -279,12 +255,9 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHttpAuthentication) { FINAL_STATUS_AUTH_NEEDED, 1); } -// Checks that HTML redirects work with prerendering - specifically, checks the -// page is used and plugins aren't loaded. +// Checks that redirects work with prerendering. IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderRedirect) { - std::string redirect_path; - ASSERT_TRUE(CreateRedirect("plugin_delay_load.html", &redirect_path)); - PrerenderTestURL(redirect_path, + PrerenderTestURL("prerender_redirect.html", FINAL_STATUS_USED, 2); NavigateToDestURL(); } @@ -318,15 +291,6 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderReferrer) { NavigateToDestURL(); } -// Checks that the referrer is not set when prerendering and the source page is -// HTTPS. -IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderNoSSLReferrer) { - set_use_https_src(true); - PrerenderTestURL("prerender_no_referrer.html", - FINAL_STATUS_USED, 1); - NavigateToDestURL(); -} - // Checks that popups on a prerendered page cause cancellation. IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPopup) { PrerenderTestURL("prerender_popup.html", @@ -340,8 +304,14 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, FLAKY_PrerenderRedirectToHttps) { FilePath(FILE_PATH_LITERAL("chrome/test/data"))); ASSERT_TRUE(https_server.Start()); GURL https_url = https_server.GetURL("files/prerender/prerender_page.html"); + std::vector replacement_text; + replacement_text.push_back( + make_pair("REPLACE_WITH_HTTPS_URL", https_url.spec())); std::string redirect_path; - ASSERT_TRUE(CreateRedirect(https_url.spec(), &redirect_path)); + ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( + "prerender_redirect_to_https.html", + replacement_text, + &redirect_path)); PrerenderTestURL(redirect_path, FINAL_STATUS_HTTPS, 2); diff --git a/chrome/test/data/prerender/prerender_no_referrer.html b/chrome/test/data/prerender/prerender_no_referrer.html deleted file mode 100644 index e8a67d1..0000000 --- a/chrome/test/data/prerender/prerender_no_referrer.html +++ /dev/null @@ -1,22 +0,0 @@ - - - -Prerender No Referrer Test - - - - diff --git a/chrome/test/data/prerender/prerender_redirect.html b/chrome/test/data/prerender/prerender_redirect.html index 6813de4..ac913b1 100644 --- a/chrome/test/data/prerender/prerender_redirect.html +++ b/chrome/test/data/prerender/prerender_redirect.html @@ -1,10 +1,10 @@ Prerender Redirect - + diff --git a/chrome/test/data/prerender/prerender_redirect_to_https.html b/chrome/test/data/prerender/prerender_redirect_to_https.html new file mode 100644 index 0000000..da031d4 --- /dev/null +++ b/chrome/test/data/prerender/prerender_redirect_to_https.html @@ -0,0 +1,10 @@ + + + +Prerender Redirect + + + + -- cgit v1.1