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

Unified Diff: net/url_request/url_request_unittest.cc

Issue 2918313002: Implement new referrer policies (Closed)
Patch Set: update public/platform/OWNERS per presubmit Created 3 years, 6 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/url_request/url_request_job_unittest.cc ('k') | third_party/WebKit/LayoutTests/TestExpectations » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/url_request/url_request_unittest.cc
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc
index ea3a9d4476760493469bc55b842e01b8fcfc6e79..6257b29296d5193917a6f1c8f4adff3b1463638d 100644
--- a/net/url_request/url_request_unittest.cc
+++ b/net/url_request/url_request_unittest.cc
@@ -8853,141 +8853,244 @@ class URLRequestTestReferrerPolicy : public URLRequestTest {
TEST_F(URLRequestTestReferrerPolicy, HTTPToSameOriginHTTP) {
InstantiateSameOriginServers(net::EmbeddedTestServer::TYPE_HTTP);
+ GURL referrer = origin_server()->GetURL("/path/to/file.html");
VerifyReferrerAfterRedirect(
URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/path/to/file.html"));
+ referrer, referrer);
VerifyReferrerAfterRedirect(
URLRequest::REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/path/to/file.html"));
+ referrer, referrer);
VerifyReferrerAfterRedirect(
- URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/path/to/file.html"));
+ URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN, referrer, referrer);
- VerifyReferrerAfterRedirect(URLRequest::NEVER_CLEAR_REFERRER,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/path/to/file.html"));
+ VerifyReferrerAfterRedirect(URLRequest::NEVER_CLEAR_REFERRER, referrer,
+ referrer);
+
+ // The original referrer set on the request is expected to obey the referrer
+ // policy and already be stripped to the origin; thus this test case just
+ // checks that this policy doesn't cause the referrer to change when following
+ // a redirect.
+ VerifyReferrerAfterRedirect(URLRequest::ORIGIN, referrer.GetOrigin(),
+ referrer.GetOrigin());
+
+ VerifyReferrerAfterRedirect(
+ URLRequest::CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN, referrer,
+ referrer);
+
+ // The original referrer set on the request is expected to obey the referrer
+ // policy and already be stripped to the origin; thus this test case just
+ // checks that this policy doesn't cause the referrer to change when following
+ // a redirect.
+ VerifyReferrerAfterRedirect(
+ URLRequest::ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE,
+ referrer.GetOrigin(), referrer.GetOrigin());
+
+ VerifyReferrerAfterRedirect(URLRequest::NO_REFERRER, GURL(), GURL());
}
TEST_F(URLRequestTestReferrerPolicy, HTTPToCrossOriginHTTP) {
InstantiateCrossOriginServers(net::EmbeddedTestServer::TYPE_HTTP,
net::EmbeddedTestServer::TYPE_HTTP);
+ GURL referrer = origin_server()->GetURL("/path/to/file.html");
VerifyReferrerAfterRedirect(
URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/path/to/file.html"));
+ referrer, referrer);
VerifyReferrerAfterRedirect(
URLRequest::REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/"));
+ referrer, referrer.GetOrigin());
VerifyReferrerAfterRedirect(
- URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/"));
+ URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN, referrer,
+ referrer.GetOrigin());
+
+ VerifyReferrerAfterRedirect(URLRequest::NEVER_CLEAR_REFERRER, referrer,
+ referrer);
+
+ // The original referrer set on the request is expected to obey the referrer
+ // policy and already be stripped to the origin; thus this test case just
+ // checks that this policy doesn't cause the referrer to change when following
+ // a redirect.
+ VerifyReferrerAfterRedirect(URLRequest::ORIGIN, referrer.GetOrigin(),
+ referrer.GetOrigin());
- VerifyReferrerAfterRedirect(URLRequest::NEVER_CLEAR_REFERRER,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/path/to/file.html"));
+ VerifyReferrerAfterRedirect(
+ URLRequest::CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN, referrer, GURL());
+
+ // The original referrer set on the request is expected to obey the referrer
+ // policy and already be stripped to the origin; thus this test case just
+ // checks that this policy doesn't cause the referrer to change when following
+ // a redirect.
+ VerifyReferrerAfterRedirect(
+ URLRequest::ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE,
+ referrer.GetOrigin(), referrer.GetOrigin());
+
+ VerifyReferrerAfterRedirect(URLRequest::NO_REFERRER, GURL(), GURL());
}
TEST_F(URLRequestTestReferrerPolicy, HTTPSToSameOriginHTTPS) {
InstantiateSameOriginServers(net::EmbeddedTestServer::TYPE_HTTPS);
+ GURL referrer = origin_server()->GetURL("/path/to/file.html");
VerifyReferrerAfterRedirect(
URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/path/to/file.html"));
+ referrer, referrer);
VerifyReferrerAfterRedirect(
URLRequest::REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/path/to/file.html"));
+ referrer, referrer);
+
+ VerifyReferrerAfterRedirect(
+ URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN, referrer, referrer);
+
+ VerifyReferrerAfterRedirect(URLRequest::NEVER_CLEAR_REFERRER, referrer,
+ referrer);
+
+ // The original referrer set on the request is expected to obey the referrer
+ // policy and already be stripped to the origin; thus this test case just
+ // checks that this policy doesn't cause the referrer to change when following
+ // a redirect.
+ VerifyReferrerAfterRedirect(URLRequest::ORIGIN, referrer.GetOrigin(),
+ referrer.GetOrigin());
+
+ VerifyReferrerAfterRedirect(
+ URLRequest::CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN, referrer,
+ referrer);
+ // The original referrer set on the request is expected to obey the referrer
+ // policy and already be stripped to the origin; thus this test case just
+ // checks that this policy doesn't cause the referrer to change when following
+ // a redirect.
VerifyReferrerAfterRedirect(
- URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/path/to/file.html"));
+ URLRequest::ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE,
+ referrer.GetOrigin(), referrer.GetOrigin());
- VerifyReferrerAfterRedirect(URLRequest::NEVER_CLEAR_REFERRER,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/path/to/file.html"));
+ VerifyReferrerAfterRedirect(URLRequest::NO_REFERRER, GURL(), GURL());
}
TEST_F(URLRequestTestReferrerPolicy, HTTPSToCrossOriginHTTPS) {
InstantiateCrossOriginServers(net::EmbeddedTestServer::TYPE_HTTPS,
net::EmbeddedTestServer::TYPE_HTTPS);
+ GURL referrer = origin_server()->GetURL("/path/to/file.html");
VerifyReferrerAfterRedirect(
URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/path/to/file.html"));
+ referrer, referrer);
VerifyReferrerAfterRedirect(
URLRequest::REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/"));
+ referrer, origin_server()->GetURL("/"));
VerifyReferrerAfterRedirect(
- URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN,
- origin_server()->GetURL("/path/to/file.html"),
+ URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN, referrer,
origin_server()->GetURL("/"));
- VerifyReferrerAfterRedirect(URLRequest::NEVER_CLEAR_REFERRER,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/path/to/file.html"));
+ VerifyReferrerAfterRedirect(URLRequest::NEVER_CLEAR_REFERRER, referrer,
+ referrer);
+
+ // The original referrer set on the request is expected to obey the referrer
+ // policy and already be stripped to the origin; thus this test case just
+ // checks that this policy doesn't cause the referrer to change when following
+ // a redirect.
+ VerifyReferrerAfterRedirect(URLRequest::ORIGIN, referrer.GetOrigin(),
+ referrer.GetOrigin());
+
+ VerifyReferrerAfterRedirect(
+ URLRequest::CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN, referrer, GURL());
+
+ // The original referrer set on the request is expected to obey the referrer
+ // policy and already be stripped to the origin; thus this test case just
+ // checks that this policy doesn't cause the referrer to change when following
+ // a redirect.
+ VerifyReferrerAfterRedirect(
+ URLRequest::ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE,
+ referrer.GetOrigin(), referrer.GetOrigin());
+
+ VerifyReferrerAfterRedirect(URLRequest::NO_REFERRER, GURL(), GURL());
}
TEST_F(URLRequestTestReferrerPolicy, HTTPToHTTPS) {
InstantiateCrossOriginServers(net::EmbeddedTestServer::TYPE_HTTP,
net::EmbeddedTestServer::TYPE_HTTPS);
+ GURL referrer = origin_server()->GetURL("/path/to/file.html");
VerifyReferrerAfterRedirect(
URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/path/to/file.html"));
+ referrer, referrer);
VerifyReferrerAfterRedirect(
URLRequest::REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/"));
+ referrer, origin_server()->GetURL("/"));
VerifyReferrerAfterRedirect(
- URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN,
- origin_server()->GetURL("/path/to/file.html"),
+ URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN, referrer,
origin_server()->GetURL("/"));
- VerifyReferrerAfterRedirect(URLRequest::NEVER_CLEAR_REFERRER,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/path/to/file.html"));
+ VerifyReferrerAfterRedirect(URLRequest::NEVER_CLEAR_REFERRER, referrer,
+ referrer);
+
+ // The original referrer set on the request is expected to obey the referrer
+ // policy and already be stripped to the origin; thus this test case just
+ // checks that this policy doesn't cause the referrer to change when following
+ // a redirect.
+ VerifyReferrerAfterRedirect(URLRequest::ORIGIN, referrer.GetOrigin(),
+ referrer.GetOrigin());
+
+ VerifyReferrerAfterRedirect(
+ URLRequest::CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN, referrer, GURL());
+
+ // The original referrer set on the request is expected to obey the referrer
+ // policy and already be stripped to the origin; thus this test case just
+ // checks that this policy doesn't cause the referrer to change when following
+ // a redirect.
+ VerifyReferrerAfterRedirect(
+ URLRequest::ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE,
+ referrer.GetOrigin(), referrer.GetOrigin());
+
+ VerifyReferrerAfterRedirect(URLRequest::NO_REFERRER, GURL(), GURL());
}
TEST_F(URLRequestTestReferrerPolicy, HTTPSToHTTP) {
InstantiateCrossOriginServers(net::EmbeddedTestServer::TYPE_HTTPS,
net::EmbeddedTestServer::TYPE_HTTP);
+ GURL referrer = origin_server()->GetURL("/path/to/file.html");
VerifyReferrerAfterRedirect(
URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE,
- origin_server()->GetURL("/path/to/file.html"), GURL());
+ referrer, GURL());
VerifyReferrerAfterRedirect(
URLRequest::REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN,
- origin_server()->GetURL("/path/to/file.html"), GURL());
+ referrer, GURL());
VerifyReferrerAfterRedirect(
- URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN,
- origin_server()->GetURL("/path/to/file.html"),
+ URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN, referrer,
origin_server()->GetURL("/"));
- VerifyReferrerAfterRedirect(URLRequest::NEVER_CLEAR_REFERRER,
- origin_server()->GetURL("/path/to/file.html"),
- origin_server()->GetURL("/path/to/file.html"));
+ VerifyReferrerAfterRedirect(URLRequest::NEVER_CLEAR_REFERRER, referrer,
+ referrer);
+
+ // The original referrer set on the request is expected to obey the referrer
+ // policy and already be stripped to the origin; thus this test case just
+ // checks that this policy doesn't cause the referrer to change when following
+ // a redirect.
+ VerifyReferrerAfterRedirect(URLRequest::ORIGIN, referrer.GetOrigin(),
+ referrer.GetOrigin());
+
+ VerifyReferrerAfterRedirect(
+ URLRequest::CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN, referrer, GURL());
+
+ // The original referrer set on the request is expected to obey the referrer
+ // policy and already be stripped to the origin, though it should be
+ // subsequently cleared during the downgrading redirect.
+ VerifyReferrerAfterRedirect(
+ URLRequest::ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE,
+ referrer.GetOrigin(), GURL());
+
+ VerifyReferrerAfterRedirect(URLRequest::NO_REFERRER, GURL(), GURL());
}
class HTTPSRequestTest : public testing::Test {
« no previous file with comments | « net/url_request/url_request_job_unittest.cc ('k') | third_party/WebKit/LayoutTests/TestExpectations » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698