Index: net/url_request/url_request_test_util.cc |
diff --git a/net/url_request/url_request_test_util.cc b/net/url_request/url_request_test_util.cc |
index 767c25295704da1046611983ee77362a24a7ab84..39b7604f910aebbb3894cd17e32d44b62c7f3106 100644 |
--- a/net/url_request/url_request_test_util.cc |
+++ b/net/url_request/url_request_test_util.cc |
@@ -193,8 +193,8 @@ TestDelegate::TestDelegate() |
certificate_errors_are_fatal_(false), |
auth_required_(false), |
have_full_request_headers_(false), |
- buf_(new IOBuffer(kBufferSize)) { |
-} |
+ request_status_(ERR_IO_PENDING), |
+ buf_(new IOBuffer(kBufferSize)) {} |
TestDelegate::~TestDelegate() {} |
@@ -250,36 +250,35 @@ void TestDelegate::OnSSLCertificateError(URLRequest* request, |
request->Cancel(); |
} |
-void TestDelegate::OnResponseStarted(URLRequest* request) { |
+void TestDelegate::OnResponseStarted(URLRequest* request, int net_error) { |
// It doesn't make sense for the request to have IO pending at this point. |
- DCHECK(!request->status().is_io_pending()); |
+ DCHECK_NE(ERR_IO_PENDING, net_error); |
EXPECT_FALSE(request->is_redirecting()); |
have_full_request_headers_ = |
request->GetFullRequestHeaders(&full_request_headers_); |
response_started_count_++; |
+ request_status_ = net_error; |
if (cancel_in_rs_) { |
- request->Cancel(); |
+ request_status_ = request->Cancel(); |
OnResponseCompleted(request); |
- } else if (!request->status().is_success()) { |
- DCHECK(request->status().status() == URLRequestStatus::FAILED || |
- request->status().status() == URLRequestStatus::CANCELED); |
+ } else if (net_error != OK) { |
request_failed_ = true; |
OnResponseCompleted(request); |
} else { |
// Initiate the first read. |
- int bytes_read = 0; |
- if (request->Read(buf_.get(), kBufferSize, &bytes_read)) |
+ int bytes_read = request->Read(buf_.get(), kBufferSize); |
+ if (bytes_read >= 0) |
OnReadCompleted(request, bytes_read); |
- else if (!request->status().is_io_pending()) |
+ else if (bytes_read != ERR_IO_PENDING) |
OnResponseCompleted(request); |
} |
} |
void TestDelegate::OnReadCompleted(URLRequest* request, int bytes_read) { |
// It doesn't make sense for the request to have IO pending at this point. |
- DCHECK(!request->status().is_io_pending()); |
+ DCHECK_NE(bytes_read, ERR_IO_PENDING); |
// If the request was cancelled in a redirect, it should not signal |
// OnReadCompleted. Note that |cancel_in_rs_| may be true due to |
@@ -290,7 +289,7 @@ void TestDelegate::OnReadCompleted(URLRequest* request, int bytes_read) { |
received_data_before_response_ = true; |
if (cancel_in_rd_) |
- request->Cancel(); |
+ request_status_ = request->Cancel(); |
if (bytes_read >= 0) { |
// There is data to read. |
@@ -301,21 +300,19 @@ void TestDelegate::OnReadCompleted(URLRequest* request, int bytes_read) { |
} |
// If it was not end of stream, request to read more. |
- if (request->status().is_success() && bytes_read > 0) { |
- bytes_read = 0; |
- while (request->Read(buf_.get(), kBufferSize, &bytes_read)) { |
- if (bytes_read > 0) { |
- data_received_.append(buf_->data(), bytes_read); |
- received_bytes_count_ += bytes_read; |
- } else { |
- break; |
- } |
+ while (bytes_read > 0) { |
+ bytes_read = request->Read(buf_.get(), kBufferSize); |
+ if (bytes_read > 0) { |
+ data_received_.append(buf_->data(), bytes_read); |
+ received_bytes_count_ += bytes_read; |
} |
} |
- if (!request->status().is_io_pending()) |
+ |
+ request_status_ = bytes_read; |
+ if (request_status_ != ERR_IO_PENDING) |
OnResponseCompleted(request); |
else if (cancel_in_rd_pending_) |
- request->Cancel(); |
+ request_status_ = request->Cancel(); |
} |
void TestDelegate::OnResponseCompleted(URLRequest* request) { |
@@ -505,7 +502,10 @@ void TestNetworkDelegate::OnBeforeRedirect(URLRequest* request, |
next_states_[req_id] |= kStageResponseStarted; |
} |
-void TestNetworkDelegate::OnResponseStarted(URLRequest* request) { |
+void TestNetworkDelegate::OnResponseStarted(URLRequest* request, |
+ int net_error) { |
+ DCHECK_NE(ERR_IO_PENDING, net_error); |
+ |
LoadTimingInfo load_timing_info; |
request->GetLoadTimingInfo(&load_timing_info); |
EXPECT_FALSE(load_timing_info.request_start_time.is_null()); |
@@ -514,12 +514,15 @@ void TestNetworkDelegate::OnResponseStarted(URLRequest* request) { |
int req_id = request->identifier(); |
InitRequestStatesIfNew(req_id); |
event_order_[req_id] += "OnResponseStarted\n"; |
- EXPECT_TRUE(next_states_[req_id] & kStageResponseStarted) << |
- event_order_[req_id]; |
+ EXPECT_TRUE(next_states_[req_id] & kStageResponseStarted) |
+ << event_order_[req_id]; |
next_states_[req_id] = kStageCompletedSuccess | kStageCompletedError; |
- if (request->status().status() == URLRequestStatus::FAILED) { |
+ if (net_error == ERR_ABORTED) |
+ return; |
+ |
+ if (net_error != OK) { |
error_count_++; |
- last_error_ = request->status().error(); |
+ last_error_ = net_error; |
} |
} |
@@ -535,28 +538,31 @@ void TestNetworkDelegate::OnNetworkBytesSent(URLRequest* request, |
total_network_bytes_sent_ += bytes_sent; |
} |
-void TestNetworkDelegate::OnCompleted(URLRequest* request, bool started) { |
+void TestNetworkDelegate::OnCompleted(URLRequest* request, |
+ bool started, |
+ int net_error) { |
+ DCHECK_NE(net_error, net::ERR_IO_PENDING); |
+ |
int req_id = request->identifier(); |
InitRequestStatesIfNew(req_id); |
event_order_[req_id] += "OnCompleted\n"; |
// Expect "Success -> (next_states_ & kStageCompletedSuccess)" |
// is logically identical to |
// Expect "!(Success) || (next_states_ & kStageCompletedSuccess)" |
- EXPECT_TRUE(!request->status().is_success() || |
- (next_states_[req_id] & kStageCompletedSuccess)) << |
- event_order_[req_id]; |
- EXPECT_TRUE(request->status().is_success() || |
- (next_states_[req_id] & kStageCompletedError)) << |
- event_order_[req_id]; |
+ EXPECT_TRUE(net_error != OK || |
+ (next_states_[req_id] & kStageCompletedSuccess)) |
+ << event_order_[req_id]; |
+ EXPECT_TRUE(net_error == OK || (next_states_[req_id] & kStageCompletedError)) |
+ << event_order_[req_id]; |
next_states_[req_id] = kStageURLRequestDestroyed; |
completed_requests_++; |
- if (request->status().status() == URLRequestStatus::FAILED) { |
- error_count_++; |
- last_error_ = request->status().error(); |
- } else if (request->status().status() == URLRequestStatus::CANCELED) { |
+ if (net_error == ERR_ABORTED) { |
canceled_requests_++; |
+ } else if (net_error != OK) { |
+ error_count_++; |
+ last_error_ = net_error; |
} else { |
- DCHECK_EQ(URLRequestStatus::SUCCESS, request->status().status()); |
+ DCHECK_EQ(OK, net_error); |
} |
} |