Index: net/http/http_transaction_test_util.cc |
diff --git a/net/http/http_transaction_test_util.cc b/net/http/http_transaction_test_util.cc |
index 2d728cfb81fb364979d5cb5129823d0932f068fb..92aa5bceda14f058e52cb4fec37527bed97236ba 100644 |
--- a/net/http/http_transaction_test_util.cc |
+++ b/net/http/http_transaction_test_util.cc |
@@ -237,6 +237,7 @@ MockNetworkTransaction::MockNetworkTransaction(RequestPriority priority, |
sent_bytes_(0), |
socket_log_id_(NetLogSource::kInvalidId), |
done_reading_called_(false), |
+ read_error_(0), |
weak_factory_(this) {} |
MockNetworkTransaction::~MockNetworkTransaction() {} |
@@ -300,20 +301,24 @@ int MockNetworkTransaction::Read(net::IOBuffer* buf, |
int buf_len, |
const CompletionCallback& callback) { |
CHECK(!done_reading_called_); |
- int num = 0; |
- if (read_handler_) { |
- num = (*read_handler_)(content_length_, data_cursor_, buf, buf_len); |
- data_cursor_ += num; |
- } else { |
- int data_len = static_cast<int>(data_.size()); |
- num = std::min(static_cast<int64_t>(buf_len), data_len - data_cursor_); |
- if (test_mode_ & TEST_MODE_SLOW_READ) |
- num = std::min(num, 1); |
- if (num) { |
- memcpy(buf->data(), data_.data() + data_cursor_, num); |
+ int num = read_error_; |
+ |
+ if (!num) { |
Randy Smith (Not in Mondays)
2017/06/22 21:45:05
I find it surprising that if both read_error_ and
shivanisha
2017/06/26 20:45:35
Yes, the intention is that if error is set it will
|
+ if (read_handler_) { |
+ num = (*read_handler_)(content_length_, data_cursor_, buf, buf_len); |
data_cursor_ += num; |
+ } else { |
+ int data_len = static_cast<int>(data_.size()); |
+ num = std::min(static_cast<int64_t>(buf_len), data_len - data_cursor_); |
+ if (test_mode_ & TEST_MODE_SLOW_READ) |
+ num = std::min(num, 1); |
+ if (num) { |
+ memcpy(buf->data(), data_.data() + data_cursor_, num); |
+ data_cursor_ += num; |
+ } |
} |
} |
+ |
if (test_mode_ & TEST_MODE_SYNC_NET_READ) |
return num; |
@@ -495,6 +500,10 @@ void MockNetworkTransaction::GetConnectionAttempts( |
NOTIMPLEMENTED(); |
} |
+void MockNetworkTransaction::SetReadError(int error) { |
+ read_error_ = error; |
+} |
+ |
void MockNetworkTransaction::CallbackLater(const CompletionCallback& callback, |
int result) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |