| 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 9d90cf82801c9e52f49c4ba04aa3276360713dfa..3489ebb3e2b72aa537eca531064853485a56650a 100644
|
| --- a/net/url_request/url_request_unittest.cc
|
| +++ b/net/url_request/url_request_unittest.cc
|
| @@ -5331,33 +5331,6 @@ TEST_F(URLRequestTestHTTP, UnsafeRedirectToDifferentUnsafeURL) {
|
| }
|
| }
|
|
|
| -// Redirects from an URL with fragment to an unsafe URL without fragment should
|
| -// be allowed.
|
| -TEST_F(URLRequestTestHTTP, UnsafeRedirectWithReferenceFragment) {
|
| - ASSERT_TRUE(test_server_.Start());
|
| -
|
| - GURL original_url(test_server_.GetURL("original#fragment"));
|
| - GURL unsafe_url("data:,url-marked-safe-and-used-in-redirect");
|
| - GURL expected_url("data:,url-marked-safe-and-used-in-redirect#fragment");
|
| -
|
| - default_network_delegate_.set_redirect_on_headers_received_url(unsafe_url);
|
| - default_network_delegate_.set_allowed_unsafe_redirect_url(unsafe_url);
|
| -
|
| - TestDelegate d;
|
| - {
|
| - URLRequest r(original_url, DEFAULT_PRIORITY, &d, &default_context_);
|
| -
|
| - r.Start();
|
| - base::RunLoop().Run();
|
| -
|
| - EXPECT_EQ(2U, r.url_chain().size());
|
| - EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
|
| - EXPECT_EQ(net::OK, r.status().error());
|
| - EXPECT_EQ(original_url, r.original_url());
|
| - EXPECT_EQ(expected_url, r.url());
|
| - }
|
| -}
|
| -
|
| // Redirects from an URL with fragment to an unsafe URL with fragment should
|
| // be allowed, and the reference fragment of the target URL should be preserved.
|
| TEST_F(URLRequestTestHTTP, UnsafeRedirectWithDifferentReferenceFragment) {
|
| @@ -5385,18 +5358,17 @@ TEST_F(URLRequestTestHTTP, UnsafeRedirectWithDifferentReferenceFragment) {
|
| }
|
| }
|
|
|
| -// When a delegate has specified a safe redirect URL, but it does not match the
|
| -// redirect target, then do not prevent the reference fragment from being added.
|
| +// When a delegate has specified a safe redirect URL, assume that the redirect
|
| +// URL should not be changed. In particular, the reference fragment should not
|
| +// be modified.
|
| TEST_F(URLRequestTestHTTP, RedirectWithReferenceFragment) {
|
| ASSERT_TRUE(test_server_.Start());
|
|
|
| - GURL original_url(test_server_.GetURL("original#expected-fragment"));
|
| - GURL unsafe_url("data:text/html,this-url-does-not-match-redirect-url");
|
| - GURL redirect_url(test_server_.GetURL("target"));
|
| - GURL expected_redirect_url(test_server_.GetURL("target#expected-fragment"));
|
| + GURL original_url(test_server_.GetURL("original#should-not-be-appended"));
|
| + GURL redirect_url("data:text/html,expect-no-reference-fragment");
|
|
|
| default_network_delegate_.set_redirect_on_headers_received_url(redirect_url);
|
| - default_network_delegate_.set_allowed_unsafe_redirect_url(unsafe_url);
|
| + default_network_delegate_.set_allowed_unsafe_redirect_url(redirect_url);
|
|
|
| TestDelegate d;
|
| {
|
| @@ -5409,7 +5381,7 @@ TEST_F(URLRequestTestHTTP, RedirectWithReferenceFragment) {
|
| EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
|
| EXPECT_EQ(net::OK, r.status().error());
|
| EXPECT_EQ(original_url, r.original_url());
|
| - EXPECT_EQ(expected_redirect_url, r.url());
|
| + EXPECT_EQ(redirect_url, r.url());
|
| }
|
| }
|
|
|
| @@ -5992,6 +5964,27 @@ TEST_F(URLRequestTestHTTP, Redirect307Tests) {
|
| HTTPRedirectMethodTest(url, "HEAD", "HEAD", false);
|
| }
|
|
|
| +TEST_F(URLRequestTestHTTP, Redirect302PreserveReferenceFragment) {
|
| + ASSERT_TRUE(test_server_.Start());
|
| +
|
| + GURL original_url(test_server_.GetURL("files/redirect302-to-echo#fragment"));
|
| + GURL expected_url(test_server_.GetURL("echo#fragment"));
|
| +
|
| + TestDelegate d;
|
| + {
|
| + URLRequest r(original_url, DEFAULT_PRIORITY, &d, &default_context_);
|
| +
|
| + r.Start();
|
| + base::RunLoop().Run();
|
| +
|
| + EXPECT_EQ(2U, r.url_chain().size());
|
| + EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
|
| + EXPECT_EQ(net::OK, r.status().error());
|
| + EXPECT_EQ(original_url, r.original_url());
|
| + EXPECT_EQ(expected_url, r.url());
|
| + }
|
| +}
|
| +
|
| TEST_F(URLRequestTestHTTP, InterceptPost302RedirectGet) {
|
| ASSERT_TRUE(test_server_.Start());
|
|
|
|
|