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

Unified Diff: net/url_request/url_request_unittest.cc

Issue 398903002: Plumb redirect info out of net, through content, and into child processes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: darin comments Created 6 years, 4 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_test_util.cc ('k') | net/websockets/websocket_stream.cc » ('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 a66924ef862ff69e35c9fb1ec385d9ef7cd778a9..2a1de2c99a1bc3c7a781bc8f0ef23852529c2f77 100644
--- a/net/url_request/url_request_unittest.cc
+++ b/net/url_request/url_request_unittest.cc
@@ -104,10 +104,10 @@ const base::string16 kUser(ASCIIToUTF16("user"));
// Tests load timing information in the case a fresh connection was used, with
// no proxy.
-void TestLoadTimingNotReused(const net::LoadTimingInfo& load_timing_info,
+void TestLoadTimingNotReused(const LoadTimingInfo& load_timing_info,
int connect_timing_flags) {
EXPECT_FALSE(load_timing_info.socket_reused);
- EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id);
+ EXPECT_NE(NetLog::Source::kInvalidId, load_timing_info.socket_log_id);
EXPECT_FALSE(load_timing_info.request_start_time.is_null());
EXPECT_FALSE(load_timing_info.request_start.is_null());
@@ -127,10 +127,10 @@ void TestLoadTimingNotReused(const net::LoadTimingInfo& load_timing_info,
// Same as above, but with proxy times.
void TestLoadTimingNotReusedWithProxy(
- const net::LoadTimingInfo& load_timing_info,
+ const LoadTimingInfo& load_timing_info,
int connect_timing_flags) {
EXPECT_FALSE(load_timing_info.socket_reused);
- EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id);
+ EXPECT_NE(NetLog::Source::kInvalidId, load_timing_info.socket_log_id);
EXPECT_FALSE(load_timing_info.request_start_time.is_null());
EXPECT_FALSE(load_timing_info.request_start.is_null());
@@ -151,9 +151,9 @@ void TestLoadTimingNotReusedWithProxy(
// Same as above, but with a reused socket and proxy times.
void TestLoadTimingReusedWithProxy(
- const net::LoadTimingInfo& load_timing_info) {
+ const LoadTimingInfo& load_timing_info) {
EXPECT_TRUE(load_timing_info.socket_reused);
- EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id);
+ EXPECT_NE(NetLog::Source::kInvalidId, load_timing_info.socket_log_id);
EXPECT_FALSE(load_timing_info.request_start_time.is_null());
EXPECT_FALSE(load_timing_info.request_start.is_null());
@@ -193,9 +193,9 @@ void FillBuffer(char* buffer, size_t len) {
#if !defined(OS_IOS)
void TestLoadTimingCacheHitNoNetwork(
- const net::LoadTimingInfo& load_timing_info) {
+ const LoadTimingInfo& load_timing_info) {
EXPECT_FALSE(load_timing_info.socket_reused);
- EXPECT_EQ(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id);
+ EXPECT_EQ(NetLog::Source::kInvalidId, load_timing_info.socket_log_id);
EXPECT_FALSE(load_timing_info.request_start_time.is_null());
EXPECT_FALSE(load_timing_info.request_start.is_null());
@@ -212,9 +212,9 @@ void TestLoadTimingCacheHitNoNetwork(
// Tests load timing in the case that there is no HTTP response. This can be
// used to test in the case of errors or non-HTTP requests.
void TestLoadTimingNoHttpResponse(
- const net::LoadTimingInfo& load_timing_info) {
+ const LoadTimingInfo& load_timing_info) {
EXPECT_FALSE(load_timing_info.socket_reused);
- EXPECT_EQ(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id);
+ EXPECT_EQ(NetLog::Source::kInvalidId, load_timing_info.socket_log_id);
// Only the request times should be non-null.
EXPECT_FALSE(load_timing_info.request_start_time.is_null());
@@ -305,7 +305,7 @@ class BlockingNetworkDelegate : public TestNetworkDelegate {
};
// Behavior during blocked stages. During other stages, just
- // returns net::OK or NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION.
+ // returns OK or NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION.
enum BlockMode {
SYNCHRONOUS, // No callback, returns specified return values.
AUTO_CALLBACK, // |this| posts a task to run the callback using the
@@ -771,7 +771,7 @@ TEST_F(URLRequestTest, FileTestFullSpecifiedRange) {
HttpRequestHeaders headers;
headers.SetHeader(
HttpRequestHeaders::kRange,
- net::HttpByteRange::Bounded(
+ HttpByteRange::Bounded(
first_byte_position, last_byte_position).GetHeaderValue());
r.SetExtraRequestHeaders(headers);
r.Start();
@@ -814,7 +814,7 @@ TEST_F(URLRequestTest, FileTestHalfSpecifiedRange) {
HttpRequestHeaders headers;
headers.SetHeader(HttpRequestHeaders::kRange,
- net::HttpByteRange::RightUnbounded(
+ HttpByteRange::RightUnbounded(
first_byte_position).GetHeaderValue());
r.SetExtraRequestHeaders(headers);
r.Start();
@@ -869,7 +869,7 @@ TEST_F(URLRequestTest, AllowFileURLs) {
ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir.path(), &test_file));
std::string test_data("monkey");
base::WriteFile(test_file, test_data.data(), test_data.size());
- GURL test_file_url = net::FilePathToFileURL(test_file);
+ GURL test_file_url = FilePathToFileURL(test_file);
{
TestDelegate d;
@@ -1873,7 +1873,7 @@ TEST_F(URLRequestTest, NetworkDelegateProxyError) {
EXPECT_EQ(1, network_delegate.completed_requests());
}
-// Make sure that net::NetworkDelegate::NotifyCompleted is called if
+// Make sure that NetworkDelegate::NotifyCompleted is called if
// content is empty.
TEST_F(URLRequestTest, RequestCompletionForEmptyResponse) {
TestDelegate d;
@@ -2431,12 +2431,12 @@ class FixedDateNetworkDelegate : public TestNetworkDelegate {
: fixed_date_(fixed_date) {}
virtual ~FixedDateNetworkDelegate() {}
- // net::NetworkDelegate implementation
+ // NetworkDelegate implementation
virtual int OnHeadersReceived(
- net::URLRequest* request,
- const net::CompletionCallback& callback,
- const net::HttpResponseHeaders* original_response_headers,
- scoped_refptr<net::HttpResponseHeaders>* override_response_headers,
+ URLRequest* request,
+ const CompletionCallback& callback,
+ const HttpResponseHeaders* original_response_headers,
+ scoped_refptr<HttpResponseHeaders>* override_response_headers,
GURL* allowed_unsafe_redirect_url) OVERRIDE;
private:
@@ -2446,13 +2446,13 @@ class FixedDateNetworkDelegate : public TestNetworkDelegate {
};
int FixedDateNetworkDelegate::OnHeadersReceived(
- net::URLRequest* request,
- const net::CompletionCallback& callback,
- const net::HttpResponseHeaders* original_response_headers,
- scoped_refptr<net::HttpResponseHeaders>* override_response_headers,
+ URLRequest* request,
+ const CompletionCallback& callback,
+ const HttpResponseHeaders* original_response_headers,
+ scoped_refptr<HttpResponseHeaders>* override_response_headers,
GURL* allowed_unsafe_redirect_url) {
- net::HttpResponseHeaders* new_response_headers =
- new net::HttpResponseHeaders(original_response_headers->raw_headers());
+ HttpResponseHeaders* new_response_headers =
+ new HttpResponseHeaders(original_response_headers->raw_headers());
new_response_headers->RemoveHeader("Date");
new_response_headers->AddHeader("Date: " + fixed_date_);
@@ -3124,7 +3124,7 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateRedirectRequestOnHeadersReceived) {
EXPECT_TRUE(
network_delegate.last_observed_proxy().Equals(
test_server_.host_port_pair()));
- EXPECT_EQ(net::OK, r.status().error());
+ EXPECT_EQ(OK, r.status().error());
EXPECT_EQ(redirect_url, r.url());
EXPECT_EQ(original_url, r.original_url());
EXPECT_EQ(2U, r.url_chain().size());
@@ -4123,7 +4123,7 @@ class AsyncLoggingUrlRequestDelegate : public TestDelegate {
// URLRequest::Delegate implementation:
void virtual OnReceivedRedirect(URLRequest* request,
- const GURL& new_url,
+ const RedirectInfo& redirect_info,
bool* defer_redirect) OVERRIDE {
*defer_redirect = true;
AsyncDelegateLogger::Run(
@@ -4133,7 +4133,7 @@ class AsyncLoggingUrlRequestDelegate : public TestDelegate {
LOAD_STATE_WAITING_FOR_DELEGATE,
base::Bind(
&AsyncLoggingUrlRequestDelegate::OnReceivedRedirectLoggingComplete,
- base::Unretained(this), request, new_url));
+ base::Unretained(this), request, redirect_info));
}
virtual void OnResponseStarted(URLRequest* request) OVERRIDE {
@@ -4161,9 +4161,9 @@ class AsyncLoggingUrlRequestDelegate : public TestDelegate {
private:
void OnReceivedRedirectLoggingComplete(URLRequest* request,
- const GURL& new_url) {
+ const RedirectInfo& redirect_info) {
bool defer_redirect = false;
- TestDelegate::OnReceivedRedirect(request, new_url, &defer_redirect);
+ TestDelegate::OnReceivedRedirect(request, redirect_info, &defer_redirect);
// FollowDeferredRedirect should not be called after cancellation.
if (cancel_stage_ == CANCEL_ON_RECEIVED_REDIRECT)
return;
@@ -4621,10 +4621,10 @@ const char kExtraHeader[] = "Allow-Snafu";
const char kExtraValue[] = "fubar";
class RedirectWithAdditionalHeadersDelegate : public TestDelegate {
- virtual void OnReceivedRedirect(net::URLRequest* request,
- const GURL& new_url,
+ virtual void OnReceivedRedirect(URLRequest* request,
+ const RedirectInfo& redirect_info,
bool* defer_redirect) OVERRIDE {
- TestDelegate::OnReceivedRedirect(request, new_url, defer_redirect);
+ TestDelegate::OnReceivedRedirect(request, redirect_info, defer_redirect);
request->SetExtraRequestHeaderByName(kExtraHeader, kExtraValue, false);
}
};
@@ -4657,10 +4657,10 @@ namespace {
const char kExtraHeaderToRemove[] = "To-Be-Removed";
class RedirectWithHeaderRemovalDelegate : public TestDelegate {
- virtual void OnReceivedRedirect(net::URLRequest* request,
- const GURL& new_url,
- bool* defer_redirect) OVERRIDE {
- TestDelegate::OnReceivedRedirect(request, new_url, defer_redirect);
+ virtual void OnReceivedRedirect(URLRequest* request,
+ const RedirectInfo& redirect_info,
+ bool* defer_redirect) OVERRIDE {
+ TestDelegate::OnReceivedRedirect(request, redirect_info, defer_redirect);
request->RemoveRequestHeaderByName(kExtraHeaderToRemove);
}
};
@@ -5388,7 +5388,7 @@ TEST_F(URLRequestTestHTTP, UnsafeRedirectToWhitelistedUnsafeURL) {
EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
EXPECT_EQ(2U, r.url_chain().size());
- EXPECT_EQ(net::OK, r.status().error());
+ EXPECT_EQ(OK, r.status().error());
EXPECT_EQ(unsafe_url, r.url());
EXPECT_EQ("this-is-considered-an-unsafe-url", d.data_received());
}
@@ -5441,7 +5441,7 @@ TEST_F(URLRequestTestHTTP, UnsafeRedirectWithDifferentReferenceFragment) {
EXPECT_EQ(2U, r.url_chain().size());
EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(net::OK, r.status().error());
+ EXPECT_EQ(OK, r.status().error());
EXPECT_EQ(original_url, r.original_url());
EXPECT_EQ(expected_url, r.url());
}
@@ -5469,7 +5469,7 @@ TEST_F(URLRequestTestHTTP, RedirectWithReferenceFragmentAndUnrelatedUnsafeUrl) {
EXPECT_EQ(2U, r.url_chain().size());
EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(net::OK, r.status().error());
+ EXPECT_EQ(OK, r.status().error());
EXPECT_EQ(original_url, r.original_url());
EXPECT_EQ(expected_redirect_url, r.url());
}
@@ -5496,7 +5496,7 @@ TEST_F(URLRequestTestHTTP, RedirectWithReferenceFragment) {
EXPECT_EQ(2U, r.url_chain().size());
EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(net::OK, r.status().error());
+ EXPECT_EQ(OK, r.status().error());
EXPECT_EQ(original_url, r.original_url());
EXPECT_EQ(redirect_url, r.url());
}
@@ -5522,7 +5522,7 @@ TEST_F(URLRequestTestHTTP, RedirectJobWithReferenceFragment) {
base::RunLoop().Run();
EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(net::OK, r.status().error());
+ EXPECT_EQ(OK, r.status().error());
EXPECT_EQ(original_url, r.original_url());
EXPECT_EQ(redirect_url, r.url());
}
@@ -6151,12 +6151,57 @@ TEST_F(URLRequestTestHTTP, Redirect302PreserveReferenceFragment) {
EXPECT_EQ(2U, r.url_chain().size());
EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(net::OK, r.status().error());
+ EXPECT_EQ(OK, r.status().error());
EXPECT_EQ(original_url, r.original_url());
EXPECT_EQ(expected_url, r.url());
}
}
+TEST_F(URLRequestTestHTTP, RedirectPreserveFirstPartyURL) {
+ ASSERT_TRUE(test_server_.Start());
+
+ GURL url(test_server_.GetURL("files/redirect302-to-echo"));
+ GURL first_party_url("http://example.com");
+
+ TestDelegate d;
+ {
+ URLRequest r(url, DEFAULT_PRIORITY, &d, &default_context_);
+ r.set_first_party_for_cookies(first_party_url);
+
+ r.Start();
+ base::RunLoop().Run();
+
+ EXPECT_EQ(2U, r.url_chain().size());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
+ EXPECT_EQ(OK, r.status().error());
+ EXPECT_EQ(first_party_url, r.first_party_for_cookies());
+ }
+}
+
+TEST_F(URLRequestTestHTTP, RedirectUpdateFirstPartyURL) {
+ ASSERT_TRUE(test_server_.Start());
+
+ GURL url(test_server_.GetURL("files/redirect302-to-echo"));
+ GURL original_first_party_url("http://example.com");
+ GURL expected_first_party_url(test_server_.GetURL("echo"));
+
+ TestDelegate d;
+ {
+ URLRequest r(url, DEFAULT_PRIORITY, &d, &default_context_);
+ r.set_first_party_for_cookies(original_first_party_url);
+ r.set_first_party_url_policy(
+ URLRequest::UPDATE_FIRST_PARTY_URL_ON_REDIRECT);
+
+ r.Start();
+ base::RunLoop().Run();
+
+ EXPECT_EQ(2U, r.url_chain().size());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
+ EXPECT_EQ(OK, r.status().error());
+ EXPECT_EQ(expected_first_party_url, r.first_party_for_cookies());
+ }
+}
+
TEST_F(URLRequestTestHTTP, InterceptPost302RedirectGet) {
ASSERT_TRUE(test_server_.Start());
@@ -6970,9 +7015,9 @@ TEST_F(HTTPSRequestTest, SSLSessionCacheShardTest) {
params.http_server_properties = default_context_.http_server_properties();
params.ssl_session_cache_shard = "alternate";
- scoped_ptr<net::HttpCache> cache(new net::HttpCache(
- new net::HttpNetworkSession(params),
- net::HttpCache::DefaultBackend::InMemory(0)));
+ scoped_ptr<HttpCache> cache(new HttpCache(
+ new HttpNetworkSession(params),
+ HttpCache::DefaultBackend::InMemory(0)));
default_context_.set_http_transaction_factory(cache.get());
@@ -7178,7 +7223,7 @@ TEST_F(HTTPSFallbackTest, SSLv3NoFallbackReset) {
class HTTPSSessionTest : public testing::Test {
public:
HTTPSSessionTest() : default_context_(true) {
- cert_verifier_.set_default_result(net::OK);
+ cert_verifier_.set_default_result(OK);
default_context_.set_network_delegate(&default_network_delegate_);
default_context_.set_cert_verifier(&cert_verifier_);
@@ -7206,7 +7251,7 @@ TEST_F(HTTPSSessionTest, DontResumeSessionsForInvalidCertificates) {
SSLClientSocket::ClearSessionCache();
// Simulate the certificate being expired and attempt a connection.
- cert_verifier_.set_default_result(net::ERR_CERT_DATE_INVALID);
+ cert_verifier_.set_default_result(ERR_CERT_DATE_INVALID);
{
TestDelegate d;
URLRequest r(test_server.GetURL("ssl-session-cache"),
@@ -7227,7 +7272,7 @@ TEST_F(HTTPSSessionTest, DontResumeSessionsForInvalidCertificates) {
// Now change the certificate to be acceptable (so that the response is
// loaded), and ensure that no session id is presented to the peer.
- cert_verifier_.set_default_result(net::OK);
+ cert_verifier_.set_default_result(OK);
{
TestDelegate d;
URLRequest r(test_server.GetURL("ssl-session-cache"),
@@ -7334,7 +7379,7 @@ class HTTPSOCSPTest : public HTTPSRequestTest {
SetupContext(&context_);
context_.Init();
- scoped_refptr<net::X509Certificate> root_cert =
+ scoped_refptr<X509Certificate> root_cert =
ImportCertFromFile(GetTestCertsDirectory(), "ocsp-test-root.pem");
CHECK_NE(static_cast<X509Certificate*>(NULL), root_cert);
test_root_.reset(new ScopedTestRoot(root_cert.get()));
« no previous file with comments | « net/url_request/url_request_test_util.cc ('k') | net/websockets/websocket_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698