Chromium Code Reviews| Index: net/url_request/url_request_unittest.cc |
| =================================================================== |
| --- net/url_request/url_request_unittest.cc (revision 264191) |
| +++ net/url_request/url_request_unittest.cc (working copy) |
| @@ -6018,6 +6018,35 @@ |
| HTTPRedirectMethodTest(url, "HEAD", "HEAD", false); |
| } |
| +TEST_F(URLRequestTestHTTP, Redirect308Tests) { |
| + ASSERT_TRUE(test_server_.Start()); |
| + |
| + const GURL url = test_server_.GetURL("files/redirect308-to-echo"); |
| + |
| + HTTPRedirectMethodTest(url, "POST", "POST", true); |
| + HTTPRedirectMethodTest(url, "PUT", "PUT", true); |
| + HTTPRedirectMethodTest(url, "HEAD", "HEAD", false); |
| +} |
| + |
| +// Make sure that 308 responses without bodies are not treated as redirects. |
| +// Certain legacy apis that pre-date the response code expect this behavior |
| +// (Like Google Drive). |
| +TEST_F(URLRequestTestHTTP, NoRedirectOn308WithoutLocationHeader) { |
| + ASSERT_TRUE(test_server_.Start()); |
| + |
| + TestDelegate d; |
| + const GURL url = test_server_.GetURL("files/308-without-location-header"); |
| + |
| + URLRequest request(url, DEFAULT_PRIORITY, &d, &default_context_); |
| + |
| + request.Start(); |
| + base::RunLoop().Run(); |
| + EXPECT_EQ(URLRequestStatus::SUCCESS, request.status().status()); |
| + EXPECT_EQ(OK, request.status().error()); |
| + EXPECT_EQ(0, d.received_redirect_count()); |
| + EXPECT_EQ("This is not a redirect.", d.data_received()); |
| +} |
|
willchan no longer on Chromium
2014/04/23 22:24:03
Can you also verify the response code just to show
mmenke
2014/04/24 00:13:47
Good idea, done.
|
| + |
| TEST_F(URLRequestTestHTTP, Redirect302PreserveReferenceFragment) { |
| ASSERT_TRUE(test_server_.Start()); |