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 @@
#include "base/strings/utf_string_conversions.h"
#include "chrome/app/chrome_command_ids.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_browsertest_util.h"
#include "chrome/browser/ui/browser.h"
......@@ -27,19 +26,17 @@
#include "content/public/browser/web_contents.h"
#include "content/public/common/content_switches.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"
class ReferrerPolicyTest : public InProcessBrowserTest {
public:
ReferrerPolicyTest() {}
~ReferrerPolicyTest() override {}
void SetUpOnMainThread() override {
content::BrowserThread::PostTask(
content::BrowserThread::IO, FROM_HERE,
base::BindOnce(&chrome_browser_net::SetUrlRequestMocksEnabled, true));
ReferrerPolicyTest() : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
https_server_.AddDefaultHandlers(
base::FilePath(FILE_PATH_LITERAL("chrome/test/data")));
EXPECT_TRUE(embedded_test_server()->Start());
EXPECT_TRUE(https_server_.Start());
}
~ReferrerPolicyTest() override {}
protected:
enum ExpectedReferrer {
......@@ -117,21 +114,6 @@ class ReferrerPolicyTest : public InProcessBrowserTest {
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
// reported referrer matches the expectation.
// Parameters:
......@@ -155,17 +137,45 @@ class ReferrerPolicyTest : public InProcessBrowserTest {
blink::WebMouseEvent::Button button,
ExpectedReferrer expected_referrer,
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("referrer_policy/referrer-policy-start.html?") +
std::string("/referrer_policy/referrer-policy-start.html?") +
"policy=" + ReferrerPolicyToString(referrer_policy) +
"&redirect=" + RedirectTypeToString(redirect) + "&link=" +
"&redirect=" + redirect_url.spec() + "&link=" +
(button == blink::WebMouseEvent::Button::kNoButton ? "false" : "true") +
"&target=" + (link_type == LINK_WITH_TARGET_BLANK ? "_blank" : "");
const GURL start_url =
(start_protocol == START_ON_HTTPS)
? net::URLRequestMockHTTPJob::GetMockHttpsUrl(relative_url)
: net::URLRequestMockHTTPJob::GetMockUrl(relative_url);
auto* start_test_server = start_protocol == START_ON_HTTPS
? &https_server_
: embedded_test_server();
const GURL start_url = start_test_server->GetURL(relative_url);
ui_test_utils::WindowedTabAddedNotificationObserver tab_added_observer(
content::NotificationService::AllSources());
......@@ -225,6 +235,8 @@ class ReferrerPolicyTest : public InProcessBrowserTest {
disposition, button, expected_referrer,
referrer_policy);
}
net::EmbeddedTestServer https_server_;
};
class ReferrerPolicyWithReduceReferrerGranularityFlagTest
......@@ -467,8 +479,7 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, History) {
blink::WebMouseEvent::Button::kLeft, EXPECT_ORIGIN_AS_REFERRER);
// Navigate to C.
ui_test_utils::NavigateToURL(
browser(), net::URLRequestMockHTTPJob::GetMockUrl(std::string()));
ui_test_utils::NavigateToURL(browser(), embedded_test_server()->GetURL("/"));
base::string16 expected_title =
GetExpectedTitle(start_url, EXPECT_ORIGIN_AS_REFERRER);
......@@ -544,8 +555,16 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, IFrame) {
// Load a page that loads an iframe.
ui_test_utils::NavigateToURL(
browser(), net::URLRequestMockHTTPJob::GetMockHttpsUrl(std::string(
"referrer_policy/referrer-policy-iframe.html")));
browser(),
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());
// 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) {
frame,
"window.domAutomationController.send(document.title)",
&title));
EXPECT_EQ(
"Referrer is " +
net::URLRequestMockHTTPJob::GetMockHttpsUrl(std::string()).spec(),
title);
EXPECT_EQ("Referrer is " + https_server_.GetURL("/").spec(), title);
// Reload the iframe.
expected_title = base::ASCIIToUTF16("reset");
......@@ -578,10 +594,11 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, IFrame) {
frame,
"window.domAutomationController.send(document.title)",
&title));
EXPECT_EQ("Referrer is " +
net::URLRequestMockHTTPJob::GetMockUrl(
"referrer_policy/referrer-policy-log.html").spec(),
title);
EXPECT_EQ(
"Referrer is " + embedded_test_server()
->GetURL("/referrer_policy/referrer-policy-log.html")
.spec(),
title);
}
// Origin When Cross-Origin
......
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 @@
<meta name="referrer" content="origin" />
</head>
<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>
</html>
......@@ -22,20 +22,9 @@ function run() {
document.head.appendChild(meta);
}
var destination;
var destination = matches[kRedirect];
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") {
var link = document.createElement("a");
link.innerText = "link";
......
......@@ -368,42 +368,6 @@
-PolicyTest.ForceGoogleSafeSearch
-ProfileBrowserTest.SendHPKPReport
-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.LocalStorageClearedOnExit
-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