| 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 c44b1a60a6627a295aa51072567fb5209eacf3b2..e5d757993190b09e90270e377db5d24cb11042a6 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_);
|
| @@ -3079,7 +3079,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());
|
| @@ -4078,7 +4078,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(
|
| @@ -4088,7 +4088,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 {
|
| @@ -4116,9 +4116,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;
|
| @@ -4576,10 +4576,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);
|
| }
|
| };
|
| @@ -4612,10 +4612,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);
|
| }
|
| };
|
| @@ -5343,7 +5343,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());
|
| }
|
| @@ -5396,7 +5396,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());
|
| }
|
| @@ -5424,7 +5424,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());
|
| }
|
| @@ -5451,7 +5451,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());
|
| }
|
| @@ -5477,7 +5477,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());
|
| }
|
| @@ -6106,12 +6106,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());
|
|
|
| @@ -6925,9 +6970,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());
|
|
|
| @@ -7141,7 +7186,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_);
|
| @@ -7169,7 +7214,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"),
|
| @@ -7190,7 +7235,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"),
|
| @@ -7297,7 +7342,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()));
|
|
|