Chromium Code Reviews| 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( |