Index: net/socket/socket_test_util.h |
diff --git a/net/socket/socket_test_util.h b/net/socket/socket_test_util.h |
index fec7819d0e95661ad6a8e223b9d10862aeba73a7..cdcbeb77a7b7e6fbd0784ec34676218028a2cc6d 100644 |
--- a/net/socket/socket_test_util.h |
+++ b/net/socket/socket_test_util.h |
@@ -518,6 +518,11 @@ class MockClientSocketFactory : public ClientSocketFactory { |
return mock_data_; |
} |
+ // If |enable_read_if_ready|, ReadIfReady() will be implemented. |
+ 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 +550,7 @@ class MockClientSocketFactory : public ClientSocketFactory { |
SocketDataProviderArray<SSLSocketDataProvider> mock_ssl_data_; |
std::vector<uint16_t> udp_client_socket_ports_; |
+ bool enable_read_if_ready_; |
DISALLOW_COPY_AND_ASSIGN(MockClientSocketFactory); |
}; |
@@ -627,6 +633,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,8 +659,26 @@ class MockTCPClientSocket : public MockClientSocket, public AsyncSocket { |
void OnConnectComplete(const MockConnect& data) override; |
void OnDataProviderDestroyed() override; |
+ // If |enable_read_if_ready|, ReadIfReady() will be implemented. |
+ void set_enable_read_if_ready(bool enable_read_if_ready) { |
+ enable_read_if_ready_ = enable_read_if_ready; |
+ } |
+ |
private: |
- int CompleteRead(); |
+ enum PendingReadType { |
+ NONE, |
+ READ, |
+ READ_IF_READY, |
+ }; |
+ // Helper method shared between Read() and ReadIfReady(). |
+ int ReadCommon(IOBuffer* buf, |
+ int buf_len, |
+ const CompletionCallback& callback, |
+ bool use_read_if_ready); |
+ |
+ int CompleteRead(bool read_if_ready_used); |
+ void RunReadCallback(const CompletionCallback& callback, int result); |
+ void RunReadCallbackAsync(const CompletionCallback& callback, int result); |
AddressList addresses_; |
@@ -672,9 +699,13 @@ class MockTCPClientSocket : public MockClientSocket, public AsyncSocket { |
CompletionCallback pending_read_callback_; |
CompletionCallback pending_write_callback_; |
bool was_used_to_convey_data_; |
+ bool enable_read_if_ready_; |
+ PendingReadType pending_read_type_; |
ConnectionAttempts connection_attempts_; |
+ base::WeakPtrFactory<MockTCPClientSocket> weak_factory_; |
+ |
DISALLOW_COPY_AND_ASSIGN(MockTCPClientSocket); |
}; |
@@ -690,6 +721,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; |