Index: net/socket/socket_test_util.h |
diff --git a/net/socket/socket_test_util.h b/net/socket/socket_test_util.h |
index c8f9b68fe9f8e33953d8b42ee28dc689ae84db9a..9790f498fa7bf067c43b6bde2f1f2927518b18d4 100644 |
--- a/net/socket/socket_test_util.h |
+++ b/net/socket/socket_test_util.h |
@@ -518,6 +518,10 @@ class MockClientSocketFactory : public ClientSocketFactory { |
return mock_data_; |
} |
+ void set_enable_read_if_ready(bool enable_read_if_ready) { |
+ enable_read_if_ready_ = enable_read_if_ready; |
+ } |
+ |
// ClientSocketFactory |
std::unique_ptr<DatagramClientSocket> CreateDatagramClientSocket( |
DatagramSocket::BindType bind_type, |
@@ -545,6 +549,10 @@ class MockClientSocketFactory : public ClientSocketFactory { |
SocketDataProviderArray<SSLSocketDataProvider> mock_ssl_data_; |
std::vector<uint16_t> udp_client_socket_ports_; |
+ // If true, ReadIfReady() is enabled; otherwise ReadIfReady() returns |
+ // ERR_READ_IF_READY_NOT_IMPLEMENTED. |
+ bool enable_read_if_ready_; |
+ |
DISALLOW_COPY_AND_ASSIGN(MockClientSocketFactory); |
}; |
@@ -627,6 +635,9 @@ class MockTCPClientSocket : public MockClientSocket, public AsyncSocket { |
int Read(IOBuffer* buf, |
int buf_len, |
const CompletionCallback& callback) override; |
+ int ReadIfReady(IOBuffer* buf, |
+ int buf_len, |
+ const CompletionCallback& callback) override; |
int Write(IOBuffer* buf, |
int buf_len, |
const CompletionCallback& callback) override; |
@@ -650,9 +661,15 @@ class MockTCPClientSocket : public MockClientSocket, public AsyncSocket { |
void OnConnectComplete(const MockConnect& data) override; |
void OnDataProviderDestroyed() override; |
- private: |
- int CompleteRead(); |
+ void set_enable_read_if_ready(bool enable_read_if_ready) { |
+ enable_read_if_ready_ = enable_read_if_ready; |
+ } |
+ private: |
+ void RetryRead(int rv); |
+ int ReadIfReadyImpl(IOBuffer* buf, |
+ int buf_len, |
+ const CompletionCallback& callback); |
AddressList addresses_; |
SocketDataProvider* data_; |
@@ -668,11 +685,19 @@ class MockTCPClientSocket : public MockClientSocket, public AsyncSocket { |
// While an asynchronous read is pending, we save our user-buffer state. |
scoped_refptr<IOBuffer> pending_read_buf_; |
int pending_read_buf_len_; |
- CompletionCallback pending_connect_callback_; |
CompletionCallback pending_read_callback_; |
+ |
+ // Non-null when a ReadIfReady() is pending. |
+ CompletionCallback pending_read_if_ready_callback_; |
+ |
+ CompletionCallback pending_connect_callback_; |
CompletionCallback pending_write_callback_; |
bool was_used_to_convey_data_; |
+ // If true, ReadIfReady() is enabled; otherwise ReadIfReady() returns |
+ // ERR_READ_IF_READY_NOT_IMPLEMENTED. |
+ bool enable_read_if_ready_; |
+ |
ConnectionAttempts connection_attempts_; |
DISALLOW_COPY_AND_ASSIGN(MockTCPClientSocket); |
@@ -690,6 +715,9 @@ class MockSSLClientSocket : public MockClientSocket, public AsyncSocket { |
int Read(IOBuffer* buf, |
int buf_len, |
const CompletionCallback& callback) override; |
+ int ReadIfReady(IOBuffer* buf, |
+ int buf_len, |
+ const CompletionCallback& callback) override; |
int Write(IOBuffer* buf, |
int buf_len, |
const CompletionCallback& callback) override; |