Chromium Code Reviews| 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..7b05caa6d5764617b8cc8e5c0c0d9660bd336fe4 100644 |
| --- a/net/url_request/url_request_unittest.cc |
| +++ b/net/url_request/url_request_unittest.cc |
| @@ -8853,141 +8853,197 @@ 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); |
| + |
| + VerifyReferrerAfterRedirect(URLRequest::ORIGIN, referrer.GetOrigin(), |
|
mmenke
2017/06/07 21:04:03
first referrer.GetOrigin() -> referrer
estark
2017/06/08 18:42:58
Unintuitive as it is, this is actually intentional
|
| + referrer.GetOrigin()); |
| + |
| + VerifyReferrerAfterRedirect( |
| + URLRequest::CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN, referrer, |
| + referrer); |
| + |
| + VerifyReferrerAfterRedirect( |
| + URLRequest::ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE, |
| + referrer.GetOrigin(), referrer.GetOrigin()); |
|
mmenke
2017/06/07 21:04:02
first referrer.GetOrigin() -> referrer
|
| + |
| + 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); |
| + |
| + VerifyReferrerAfterRedirect(URLRequest::ORIGIN, referrer.GetOrigin(), |
|
mmenke
2017/06/07 21:04:02
first referrer.GetOrigin() -> referrer
|
| + 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()); |
| + |
| + VerifyReferrerAfterRedirect( |
| + URLRequest::ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE, |
| + referrer.GetOrigin(), referrer.GetOrigin()); |
|
mmenke
2017/06/07 21:04:03
first referrer.GetOrigin() -> referrer
|
| + |
| + VerifyReferrerAfterRedirect(URLRequest::NO_REFERRER, GURL(), GURL()); |
|
mmenke
2017/06/07 21:04:01
first GURL() -> referrer
|
| } |
| 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); |
| + |
| + VerifyReferrerAfterRedirect(URLRequest::ORIGIN, referrer.GetOrigin(), |
|
mmenke
2017/06/07 21:04:03
Please fix the rest of these, too.
|
| + referrer.GetOrigin()); |
| + |
| + VerifyReferrerAfterRedirect( |
| + URLRequest::CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN, 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_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); |
| + |
| + VerifyReferrerAfterRedirect(URLRequest::ORIGIN, referrer.GetOrigin(), |
| + referrer.GetOrigin()); |
| + |
| + VerifyReferrerAfterRedirect( |
| + URLRequest::CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN, referrer, GURL()); |
| + |
| + 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); |
| + |
| + VerifyReferrerAfterRedirect(URLRequest::ORIGIN, referrer.GetOrigin(), |
| + referrer.GetOrigin()); |
| + |
| + VerifyReferrerAfterRedirect( |
| + URLRequest::CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN, referrer, GURL()); |
| + |
| + 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); |
| + |
| + VerifyReferrerAfterRedirect(URLRequest::ORIGIN, referrer.GetOrigin(), |
| + referrer.GetOrigin()); |
| + |
| + VerifyReferrerAfterRedirect( |
| + URLRequest::CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN, referrer, GURL()); |
| + |
| + VerifyReferrerAfterRedirect( |
| + URLRequest::ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE, |
| + referrer.GetOrigin(), GURL()); |
| + |
| + VerifyReferrerAfterRedirect(URLRequest::NO_REFERRER, GURL(), GURL()); |
| } |
| class HTTPSRequestTest : public testing::Test { |