Commit 1e94411f authored by John Abd-El-Malek's avatar John Abd-El-Malek Committed by Commit Bot

Convert referrer tests to work with the network service.

This is done by switching from net::URLRequestMockHTTPJob to using
net::test_server::EmbeddedTestServer.

Bug: 776589
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: I8cf56477956ac64c70ba65221a1c248f39ff7944
Reviewed-on: https://chromium-review.googlesource.com/810205
Commit-Queue: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: default avatarJochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#522110}
parent c3db22be
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "chrome/app/chrome_command_ids.h" #include "chrome/app/chrome_command_ids.h"
#include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/net/url_request_mock_util.h"
#include "chrome/browser/renderer_context_menu/render_view_context_menu.h" #include "chrome/browser/renderer_context_menu/render_view_context_menu.h"
#include "chrome/browser/renderer_context_menu/render_view_context_menu_browsertest_util.h" #include "chrome/browser/renderer_context_menu/render_view_context_menu_browsertest_util.h"
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
...@@ -27,19 +26,17 @@ ...@@ -27,19 +26,17 @@
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
#include "content/public/common/content_switches.h" #include "content/public/common/content_switches.h"
#include "content/public/test/browser_test_utils.h" #include "content/public/test/browser_test_utils.h"
#include "net/test/url_request/url_request_mock_http_job.h"
#include "third_party/WebKit/public/platform/WebInputEvent.h" #include "third_party/WebKit/public/platform/WebInputEvent.h"
class ReferrerPolicyTest : public InProcessBrowserTest { class ReferrerPolicyTest : public InProcessBrowserTest {
public: public:
ReferrerPolicyTest() {} ReferrerPolicyTest() : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
~ReferrerPolicyTest() override {} https_server_.AddDefaultHandlers(
base::FilePath(FILE_PATH_LITERAL("chrome/test/data")));
void SetUpOnMainThread() override { EXPECT_TRUE(embedded_test_server()->Start());
content::BrowserThread::PostTask( EXPECT_TRUE(https_server_.Start());
content::BrowserThread::IO, FROM_HERE,
base::BindOnce(&chrome_browser_net::SetUrlRequestMocksEnabled, true));
} }
~ReferrerPolicyTest() override {}
protected: protected:
enum ExpectedReferrer { enum ExpectedReferrer {
...@@ -117,21 +114,6 @@ class ReferrerPolicyTest : public InProcessBrowserTest { ...@@ -117,21 +114,6 @@ class ReferrerPolicyTest : public InProcessBrowserTest {
SERVER_REDIRECT_FROM_HTTP_TO_HTTPS SERVER_REDIRECT_FROM_HTTP_TO_HTTPS
}; };
std::string RedirectTypeToString(RedirectType redirect) {
switch (redirect) {
case NO_REDIRECT:
return "none";
case SERVER_REDIRECT_FROM_HTTPS_TO_HTTP:
return "https2http";
case SERVER_REDIRECT_FROM_HTTP_TO_HTTP:
return "http2http";
case SERVER_REDIRECT_FROM_HTTP_TO_HTTPS:
return "http2https";
}
NOTREACHED();
return "";
}
// Navigates from a page with a given |referrer_policy| and checks that the // Navigates from a page with a given |referrer_policy| and checks that the
// reported referrer matches the expectation. // reported referrer matches the expectation.
// Parameters: // Parameters:
...@@ -155,17 +137,45 @@ class ReferrerPolicyTest : public InProcessBrowserTest { ...@@ -155,17 +137,45 @@ class ReferrerPolicyTest : public InProcessBrowserTest {
blink::WebMouseEvent::Button button, blink::WebMouseEvent::Button button,
ExpectedReferrer expected_referrer, ExpectedReferrer expected_referrer,
blink::WebReferrerPolicy expected_referrer_policy) { blink::WebReferrerPolicy expected_referrer_policy) {
GURL redirect_url;
switch (redirect) {
case NO_REDIRECT:
redirect_url = embedded_test_server()->GetURL(
"/referrer_policy/referrer-policy-log.html");
break;
case SERVER_REDIRECT_FROM_HTTPS_TO_HTTP:
redirect_url = https_server_.GetURL(
std::string("/server-redirect?") +
embedded_test_server()
->GetURL("/referrer_policy/referrer-policy-log.html")
.spec());
break;
case SERVER_REDIRECT_FROM_HTTP_TO_HTTP:
redirect_url = embedded_test_server()->GetURL(
std::string("/server-redirect?") +
embedded_test_server()
->GetURL("/referrer_policy/referrer-policy-log.html")
.spec());
break;
case SERVER_REDIRECT_FROM_HTTP_TO_HTTPS:
redirect_url = embedded_test_server()->GetURL(
std::string("/server-redirect?") +
https_server_.GetURL("/referrer_policy/referrer-policy-log.html")
.spec());
break;
}
std::string relative_url = std::string relative_url =
std::string("referrer_policy/referrer-policy-start.html?") + std::string("/referrer_policy/referrer-policy-start.html?") +
"policy=" + ReferrerPolicyToString(referrer_policy) + "policy=" + ReferrerPolicyToString(referrer_policy) +
"&redirect=" + RedirectTypeToString(redirect) + "&link=" + "&redirect=" + redirect_url.spec() + "&link=" +
(button == blink::WebMouseEvent::Button::kNoButton ? "false" : "true") + (button == blink::WebMouseEvent::Button::kNoButton ? "false" : "true") +
"&target=" + (link_type == LINK_WITH_TARGET_BLANK ? "_blank" : ""); "&target=" + (link_type == LINK_WITH_TARGET_BLANK ? "_blank" : "");
const GURL start_url = auto* start_test_server = start_protocol == START_ON_HTTPS
(start_protocol == START_ON_HTTPS) ? &https_server_
? net::URLRequestMockHTTPJob::GetMockHttpsUrl(relative_url) : embedded_test_server();
: net::URLRequestMockHTTPJob::GetMockUrl(relative_url); const GURL start_url = start_test_server->GetURL(relative_url);
ui_test_utils::WindowedTabAddedNotificationObserver tab_added_observer( ui_test_utils::WindowedTabAddedNotificationObserver tab_added_observer(
content::NotificationService::AllSources()); content::NotificationService::AllSources());
...@@ -225,6 +235,8 @@ class ReferrerPolicyTest : public InProcessBrowserTest { ...@@ -225,6 +235,8 @@ class ReferrerPolicyTest : public InProcessBrowserTest {
disposition, button, expected_referrer, disposition, button, expected_referrer,
referrer_policy); referrer_policy);
} }
net::EmbeddedTestServer https_server_;
}; };
class ReferrerPolicyWithReduceReferrerGranularityFlagTest class ReferrerPolicyWithReduceReferrerGranularityFlagTest
...@@ -467,8 +479,7 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, History) { ...@@ -467,8 +479,7 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, History) {
blink::WebMouseEvent::Button::kLeft, EXPECT_ORIGIN_AS_REFERRER); blink::WebMouseEvent::Button::kLeft, EXPECT_ORIGIN_AS_REFERRER);
// Navigate to C. // Navigate to C.
ui_test_utils::NavigateToURL( ui_test_utils::NavigateToURL(browser(), embedded_test_server()->GetURL("/"));
browser(), net::URLRequestMockHTTPJob::GetMockUrl(std::string()));
base::string16 expected_title = base::string16 expected_title =
GetExpectedTitle(start_url, EXPECT_ORIGIN_AS_REFERRER); GetExpectedTitle(start_url, EXPECT_ORIGIN_AS_REFERRER);
...@@ -544,8 +555,16 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, IFrame) { ...@@ -544,8 +555,16 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, IFrame) {
// Load a page that loads an iframe. // Load a page that loads an iframe.
ui_test_utils::NavigateToURL( ui_test_utils::NavigateToURL(
browser(), net::URLRequestMockHTTPJob::GetMockHttpsUrl(std::string( browser(),
"referrer_policy/referrer-policy-iframe.html"))); https_server_.GetURL("/referrer_policy/referrer-policy-iframe.html"));
EXPECT_TRUE(content::ExecuteScript(
tab,
std::string("var frame = document.createElement('iframe');frame.src ='") +
embedded_test_server()
->GetURL("/referrer_policy/referrer-policy-log.html")
.spec() +
"';frame.onload = function() { document.title = 'loaded'; };" +
"document.body.appendChild(frame)"));
EXPECT_EQ(expected_title, title_watcher->WaitAndGetTitle()); EXPECT_EQ(expected_title, title_watcher->WaitAndGetTitle());
// Verify that the referrer policy was honored and the main page's origin was // Verify that the referrer policy was honored and the main page's origin was
...@@ -557,10 +576,7 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, IFrame) { ...@@ -557,10 +576,7 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, IFrame) {
frame, frame,
"window.domAutomationController.send(document.title)", "window.domAutomationController.send(document.title)",
&title)); &title));
EXPECT_EQ( EXPECT_EQ("Referrer is " + https_server_.GetURL("/").spec(), title);
"Referrer is " +
net::URLRequestMockHTTPJob::GetMockHttpsUrl(std::string()).spec(),
title);
// Reload the iframe. // Reload the iframe.
expected_title = base::ASCIIToUTF16("reset"); expected_title = base::ASCIIToUTF16("reset");
...@@ -578,9 +594,10 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, IFrame) { ...@@ -578,9 +594,10 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, IFrame) {
frame, frame,
"window.domAutomationController.send(document.title)", "window.domAutomationController.send(document.title)",
&title)); &title));
EXPECT_EQ("Referrer is " + EXPECT_EQ(
net::URLRequestMockHTTPJob::GetMockUrl( "Referrer is " + embedded_test_server()
"referrer_policy/referrer-policy-log.html").spec(), ->GetURL("/referrer_policy/referrer-policy-log.html")
.spec(),
title); title);
} }
......
HTTP/1.1 301 Moved permanently
Location: http://mock.http/referrer_policy/referrer-policy-log.html
HTTP/1.1 301 Moved permanently
Location: https://mock.http/referrer_policy/referrer-policy-log.html
...@@ -4,11 +4,5 @@ ...@@ -4,11 +4,5 @@
<meta name="referrer" content="origin" /> <meta name="referrer" content="origin" />
</head> </head>
<body> <body>
<script>
var frame = document.createElement("iframe");
frame.src = "http://mock.http/referrer_policy/referrer-policy-log.html";
frame.onload = function() { document.title = "loaded"; };
document.body.appendChild(frame);
</script>
</body> </body>
</html> </html>
...@@ -22,20 +22,9 @@ function run() { ...@@ -22,20 +22,9 @@ function run() {
document.head.appendChild(meta); document.head.appendChild(meta);
} }
var destination; var destination = matches[kRedirect];
var redirectMatches; var redirectMatches;
if (matches[kRedirect] == "none") {
destination = "http://mock.http/referrer_policy/referrer-policy-log.html";
} else if (redirectMatches = /^(https?)2(https?)$/.exec(matches[kRedirect])) {
destination =
redirectMatches[1] +
"://mock.http/referrer_policy/redirect-to-" +
redirectMatches[2] + "-log";
} else {
destination = matches[kRedirect];
}
if (matches[kLink] == "true") { if (matches[kLink] == "true") {
var link = document.createElement("a"); var link = document.createElement("a");
link.innerText = "link"; link.innerText = "link";
......
...@@ -368,42 +368,6 @@ ...@@ -368,42 +368,6 @@
-PolicyTest.ForceGoogleSafeSearch -PolicyTest.ForceGoogleSafeSearch
-ProfileBrowserTest.SendHPKPReport -ProfileBrowserTest.SendHPKPReport
-ProfileBrowserTest.SendHPKPReportServerHangs -ProfileBrowserTest.SendHPKPReportServerHangs
-ReferrerPolicyTest.ContextMenuOrigin
-ReferrerPolicyTest.ContextMenuRedirect
-ReferrerPolicyTest.History
-ReferrerPolicyTest.HttpsContextMenuOrigin
-ReferrerPolicyTest.HttpsContextMenuRedirect
-ReferrerPolicyTest.HttpLeftClickHTTPRedirectToHTTPSSameOrigin
-ReferrerPolicyTest.HttpLeftClickHTTPRedirectToHTTPSameOrigin
-ReferrerPolicyTest.HttpLeftClickHTTPRedirectToHTTPStrictOrigin
-ReferrerPolicyTest.HttpLeftClickHTTPSRedirectToHTTPOriginWhenCrossOrigin
-ReferrerPolicyTest.HttpLeftClickHTTPSRedirectToHTTPStrictOrigin
-ReferrerPolicyTest.HttpLeftClickRedirectDefaultNoFlag
-ReferrerPolicyTest.HttpLeftClickRedirectToHTTPOriginWhenCrossOrigin
-ReferrerPolicyTest.HttpLeftClickRedirectToHTTPSOriginWhenCrossOrigin
-ReferrerPolicyTest.HttpsDefault
-ReferrerPolicyTest.HttpsLeftClickOrigin
-ReferrerPolicyTest.HttpsLeftClickRedirect
-ReferrerPolicyTest.HttpsMiddleClickOrigin
-ReferrerPolicyTest.HttpsMiddleClickRedirect
-ReferrerPolicyTest.HttpsMiddleClickTargetBlankOrigin
-ReferrerPolicyTest.HttpsMiddleClickTargetBlankRedirect
-ReferrerPolicyTest.HttpsRedirect
-ReferrerPolicyTest.HttpsTargetBlankOrigin
-ReferrerPolicyTest.HttpsTargetBlankRedirect
-ReferrerPolicyTest.IFrame
-ReferrerPolicyTest.LeftClickOrigin
-ReferrerPolicyTest.LeftClickRedirect
-ReferrerPolicyTest.MiddleClickOrigin
-ReferrerPolicyTest.MiddleClickRedirect
-ReferrerPolicyTest.MiddleClickTargetBlankOrigin
-ReferrerPolicyTest.MiddleClickTargetBlankRedirect
-ReferrerPolicyTest.Origin
-ReferrerPolicyTest.Redirect
-ReferrerPolicyTest.RequestTabletSite
-ReferrerPolicyTest.TargetBlankOrigin
-ReferrerPolicyTest.TargetBlankRedirect
-ReferrerPolicyWithReduceReferrerGranularityFlagTest.HttpLeftClickRedirectDefaultFlag
-RestartTest.CookiesClearedOnExit -RestartTest.CookiesClearedOnExit
-RestartTest.LocalStorageClearedOnExit -RestartTest.LocalStorageClearedOnExit
-RestartTest.Post -RestartTest.Post
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment