Index: net/socket/socket_test_util.h |
diff --git a/net/socket/socket_test_util.h b/net/socket/socket_test_util.h |
index 1e09708a3d2622521360047dbf5b6027b7956bf0..4a15f37c060c6fe9a3f350b94f5e77e1ca36b736 100644 |
--- a/net/socket/socket_test_util.h |
+++ b/net/socket/socket_test_util.h |
@@ -182,11 +182,12 @@ class StaticSocketDataProvider : public SocketDataProvider { |
bool at_read_eof() const { return read_index_ >= read_count_; } |
bool at_write_eof() const { return write_index_ >= write_count_; } |
+ virtual void CompleteRead() {} |
+ |
// SocketDataProvider methods: |
virtual MockRead GetNextRead(); |
virtual MockWriteResult OnWrite(const std::string& data); |
virtual void Reset(); |
- virtual void CompleteRead() {} |
private: |
MockRead* reads_; |
@@ -208,16 +209,16 @@ class DynamicSocketDataProvider : public SocketDataProvider { |
DynamicSocketDataProvider(); |
virtual ~DynamicSocketDataProvider(); |
- // SocketDataProvider methods: |
- virtual MockRead GetNextRead(); |
- virtual MockWriteResult OnWrite(const std::string& data) = 0; |
- virtual void Reset(); |
- |
int short_read_limit() const { return short_read_limit_; } |
void set_short_read_limit(int limit) { short_read_limit_ = limit; } |
void allow_unconsumed_reads(bool allow) { allow_unconsumed_reads_ = allow; } |
+ // SocketDataProvider methods: |
+ virtual MockRead GetNextRead(); |
+ virtual MockWriteResult OnWrite(const std::string& data) = 0; |
+ virtual void Reset(); |
+ |
protected: |
// The next time there is a read from this socket, it will return |data|. |
// Before calling SimulateRead next time, the previous data must be consumed. |
@@ -284,11 +285,13 @@ class DelayedSocketData : public StaticSocketDataProvider, |
MockWrite* writes, size_t writes_count); |
~DelayedSocketData(); |
+ void ForceNextRead(); |
+ |
+ // StaticSocketDataProvider: |
virtual MockRead GetNextRead(); |
virtual MockWriteResult OnWrite(const std::string& data); |
virtual void Reset(); |
virtual void CompleteRead(); |
- void ForceNextRead(); |
private: |
int write_delay_; |
@@ -327,11 +330,6 @@ class OrderedSocketData : public StaticSocketDataProvider, |
MockRead* reads, size_t reads_count, |
MockWrite* writes, size_t writes_count); |
- virtual MockRead GetNextRead(); |
- virtual MockWriteResult OnWrite(const std::string& data); |
- virtual void Reset(); |
- virtual void CompleteRead(); |
- |
void SetCompletionCallback(CompletionCallback* callback) { |
callback_ = callback; |
} |
@@ -339,6 +337,12 @@ class OrderedSocketData : public StaticSocketDataProvider, |
// Posts a quit message to the current message loop, if one is running. |
void EndLoop(); |
+ // StaticSocketDataProvider: |
+ virtual MockRead GetNextRead(); |
+ virtual MockWriteResult OnWrite(const std::string& data); |
+ virtual void Reset(); |
+ virtual void CompleteRead(); |
+ |
private: |
friend class base::RefCounted<OrderedSocketData>; |
virtual ~OrderedSocketData(); |
@@ -416,19 +420,7 @@ class DeterministicSocketData : public StaticSocketDataProvider, |
// |writes| the list of MockWrite completions. |
DeterministicSocketData(MockRead* reads, size_t reads_count, |
MockWrite* writes, size_t writes_count); |
- |
- // When the socket calls Read(), that calls GetNextRead(), and expects either |
- // ERR_IO_PENDING or data. |
- virtual MockRead GetNextRead(); |
- |
- // When the socket calls Write(), it always completes synchronously. OnWrite() |
- // checks to make sure the written data matches the expected data. The |
- // callback will not be invoked until its sequence number is reached. |
- virtual MockWriteResult OnWrite(const std::string& data); |
- |
- virtual void Reset(); |
- |
- virtual void CompleteRead() {} |
+ virtual ~DeterministicSocketData(); |
// Consume all the data up to the give stop point (via SetStop()). |
void Run(); |
@@ -437,16 +429,10 @@ class DeterministicSocketData : public StaticSocketDataProvider, |
void RunFor(int steps); |
// Stop at step |seq|, which must be in the future. |
- virtual void SetStop(int seq) { |
- DCHECK_LT(sequence_number_, seq); |
- stopping_sequence_number_ = seq; |
- stopped_ = false; |
- } |
+ virtual void SetStop(int seq); |
// Stop |seq| steps after the current step. |
- virtual void StopAfter(int seq) { |
- SetStop(sequence_number_ + seq); |
- } |
+ virtual void StopAfter(int seq); |
bool stopped() const { return stopped_; } |
void SetStopped(bool val) { stopped_ = val; } |
MockRead& current_read() { return current_read_; } |
@@ -456,6 +442,19 @@ class DeterministicSocketData : public StaticSocketDataProvider, |
socket_ = socket; |
} |
+ // StaticSocketDataProvider: |
+ |
+ // When the socket calls Read(), that calls GetNextRead(), and expects either |
+ // ERR_IO_PENDING or data. |
+ virtual MockRead GetNextRead(); |
+ |
+ // When the socket calls Write(), it always completes synchronously. OnWrite() |
+ // checks to make sure the written data matches the expected data. The |
+ // callback will not be invoked until its sequence number is reached. |
+ virtual MockWriteResult OnWrite(const std::string& data); |
+ virtual void Reset(); |
+ virtual void CompleteRead() {} |
+ |
private: |
// Invoke the read and write callbacks, if the timing is appropriate. |
void InvokeCallbacks(); |
@@ -471,7 +470,6 @@ class DeterministicSocketData : public StaticSocketDataProvider, |
bool print_debug_; |
}; |
- |
// Holds an array of SocketDataProvider elements. As Mock{TCP,SSL}ClientSocket |
// objects get instantiated, they take their data from the i'th element of this |
// array. |
@@ -529,6 +527,13 @@ class MockClientSocketFactory : public ClientSocketFactory { |
// created. |
MockSSLClientSocket* GetMockSSLClientSocket(size_t index) const; |
+ SocketDataProviderArray<SocketDataProvider>& mock_data() { |
+ return mock_data_; |
+ } |
+ std::vector<MockTCPClientSocket*>& tcp_client_sockets() { |
+ return tcp_client_sockets_; |
+ } |
+ |
// ClientSocketFactory |
virtual ClientSocket* CreateTCPClientSocket( |
const AddressList& addresses, |
@@ -541,12 +546,6 @@ class MockClientSocketFactory : public ClientSocketFactory { |
SSLHostInfo* ssl_host_info, |
CertVerifier* cert_verifier, |
DnsCertProvenanceChecker* dns_cert_checker); |
- SocketDataProviderArray<SocketDataProvider>& mock_data() { |
- return mock_data_; |
- } |
- std::vector<MockTCPClientSocket*>& tcp_client_sockets() { |
- return tcp_client_sockets_; |
- } |
private: |
SocketDataProviderArray<SocketDataProvider> mock_data_; |
@@ -560,13 +559,29 @@ class MockClientSocketFactory : public ClientSocketFactory { |
class MockClientSocket : public net::SSLClientSocket { |
public: |
explicit MockClientSocket(net::NetLog* net_log); |
+ |
+ // If an async IO is pending because the SocketDataProvider returned |
+ // ERR_IO_PENDING, then the MockClientSocket waits until this OnReadComplete |
+ // is called to complete the asynchronous read operation. |
+ // data.async is ignored, and this read is completed synchronously as |
+ // part of this call. |
+ virtual void OnReadComplete(const MockRead& data) = 0; |
+ |
+ // Socket methods: |
+ virtual int Read(net::IOBuffer* buf, int buf_len, |
+ net::CompletionCallback* callback) = 0; |
+ virtual int Write(net::IOBuffer* buf, int buf_len, |
+ net::CompletionCallback* callback) = 0; |
+ virtual bool SetReceiveBufferSize(int32 size); |
+ virtual bool SetSendBufferSize(int32 size); |
+ |
// ClientSocket methods: |
virtual int Connect(net::CompletionCallback* callback) = 0; |
virtual void Disconnect(); |
virtual bool IsConnected() const; |
virtual bool IsConnectedAndIdle() const; |
virtual int GetPeerAddress(AddressList* address) const; |
- virtual const BoundNetLog& NetLog() const { return net_log_;} |
+ virtual const BoundNetLog& NetLog() const; |
virtual void SetSubresourceSpeculation() {} |
virtual void SetOmniboxSpeculation() {} |
@@ -576,23 +591,8 @@ class MockClientSocket : public net::SSLClientSocket { |
net::SSLCertRequestInfo* cert_request_info); |
virtual NextProtoStatus GetNextProto(std::string* proto); |
- // Socket methods: |
- virtual int Read(net::IOBuffer* buf, int buf_len, |
- net::CompletionCallback* callback) = 0; |
- virtual int Write(net::IOBuffer* buf, int buf_len, |
- net::CompletionCallback* callback) = 0; |
- virtual bool SetReceiveBufferSize(int32 size) { return true; } |
- virtual bool SetSendBufferSize(int32 size) { return true; } |
- |
- // If an async IO is pending because the SocketDataProvider returned |
- // ERR_IO_PENDING, then the MockClientSocket waits until this OnReadComplete |
- // is called to complete the asynchronous read operation. |
- // data.async is ignored, and this read is completed synchronously as |
- // part of this call. |
- virtual void OnReadComplete(const MockRead& data) = 0; |
- |
protected: |
- virtual ~MockClientSocket() {} |
+ virtual ~MockClientSocket(); |
void RunCallbackAsync(net::CompletionCallback* callback, int result); |
void RunCallback(net::CompletionCallback*, int result); |
@@ -609,13 +609,7 @@ class MockTCPClientSocket : public MockClientSocket { |
MockTCPClientSocket(const net::AddressList& addresses, net::NetLog* net_log, |
net::SocketDataProvider* socket); |
- // ClientSocket methods: |
- virtual int Connect(net::CompletionCallback* callback); |
- virtual void Disconnect(); |
- virtual bool IsConnected() const; |
- virtual bool IsConnectedAndIdle() const { return IsConnected(); } |
- virtual bool WasEverUsed() const { return was_used_to_convey_data_; } |
- virtual bool UsingTCPFastOpen() const { return false; } |
+ net::AddressList addresses() const { return addresses_; } |
// Socket methods: |
virtual int Read(net::IOBuffer* buf, int buf_len, |
@@ -623,9 +617,16 @@ class MockTCPClientSocket : public MockClientSocket { |
virtual int Write(net::IOBuffer* buf, int buf_len, |
net::CompletionCallback* callback); |
- virtual void OnReadComplete(const MockRead& data); |
+ // ClientSocket methods: |
+ virtual int Connect(net::CompletionCallback* callback); |
+ virtual void Disconnect(); |
+ virtual bool IsConnected() const; |
+ virtual bool IsConnectedAndIdle() const; |
+ virtual bool WasEverUsed() const; |
+ virtual bool UsingTCPFastOpen() const; |
- net::AddressList addresses() const { return addresses_; } |
+ // MockClientSocket: |
+ virtual void OnReadComplete(const MockRead& data); |
private: |
int CompleteRead(); |
@@ -654,27 +655,30 @@ class DeterministicMockTCPClientSocket : public MockClientSocket, |
public: |
DeterministicMockTCPClientSocket(net::NetLog* net_log, |
net::DeterministicSocketData* data); |
+ virtual ~DeterministicMockTCPClientSocket(); |
- // ClientSocket methods: |
- virtual int Connect(net::CompletionCallback* callback); |
- virtual void Disconnect(); |
- virtual bool IsConnected() const; |
- virtual bool IsConnectedAndIdle() const { return IsConnected(); } |
- virtual bool WasEverUsed() const { return was_used_to_convey_data_; } |
- virtual bool UsingTCPFastOpen() const { return false; } |
+ bool write_pending() const { return write_pending_; } |
+ bool read_pending() const { return read_pending_; } |
- // Socket methods: |
+ void CompleteWrite(); |
+ int CompleteRead(); |
+ |
+ // Socket: |
virtual int Write(net::IOBuffer* buf, int buf_len, |
net::CompletionCallback* callback); |
virtual int Read(net::IOBuffer* buf, int buf_len, |
net::CompletionCallback* callback); |
- bool write_pending() const { return write_pending_; } |
- bool read_pending() const { return read_pending_; } |
+ // ClientSocket: |
+ virtual int Connect(net::CompletionCallback* callback); |
+ virtual void Disconnect(); |
+ virtual bool IsConnected() const; |
+ virtual bool IsConnectedAndIdle() const; |
+ virtual bool WasEverUsed() const; |
+ virtual bool UsingTCPFastOpen() const; |
- void CompleteWrite(); |
- int CompleteRead(); |
- void OnReadComplete(const MockRead& data); |
+ // MockClientSocket: |
+ virtual void OnReadComplete(const MockRead& data); |
private: |
bool write_pending_; |
@@ -699,7 +703,13 @@ class MockSSLClientSocket : public MockClientSocket { |
const net::SSLConfig& ssl_config, |
SSLHostInfo* ssl_host_info, |
net::SSLSocketDataProvider* socket); |
- ~MockSSLClientSocket(); |
+ virtual ~MockSSLClientSocket(); |
+ |
+ // Socket methods: |
+ virtual int Read(net::IOBuffer* buf, int buf_len, |
+ net::CompletionCallback* callback); |
+ virtual int Write(net::IOBuffer* buf, int buf_len, |
+ net::CompletionCallback* callback); |
// ClientSocket methods: |
virtual int Connect(net::CompletionCallback* callback); |
@@ -708,12 +718,6 @@ class MockSSLClientSocket : public MockClientSocket { |
virtual bool WasEverUsed() const; |
virtual bool UsingTCPFastOpen() const; |
- // Socket methods: |
- virtual int Read(net::IOBuffer* buf, int buf_len, |
- net::CompletionCallback* callback); |
- virtual int Write(net::IOBuffer* buf, int buf_len, |
- net::CompletionCallback* callback); |
- |
// SSLClientSocket methods: |
virtual void GetSSLInfo(net::SSLInfo* ssl_info); |
virtual void GetSSLCertRequestInfo( |
@@ -723,7 +727,7 @@ class MockSSLClientSocket : public MockClientSocket { |
virtual bool set_was_npn_negotiated(bool negotiated); |
// This MockSocket does not implement the manual async IO feature. |
- virtual void OnReadComplete(const MockRead& data) { NOTIMPLEMENTED(); } |
+ virtual void OnReadComplete(const MockRead& data); |
private: |
class ConnectCallback; |
@@ -878,6 +882,13 @@ class DeterministicMockClientSocketFactory : public ClientSocketFactory { |
// created. |
MockSSLClientSocket* GetMockSSLClientSocket(size_t index) const; |
+ SocketDataProviderArray<DeterministicSocketData>& mock_data() { |
+ return mock_data_; |
+ } |
+ std::vector<DeterministicMockTCPClientSocket*>& tcp_client_sockets() { |
+ return tcp_client_sockets_; |
+ } |
+ |
// ClientSocketFactory |
virtual ClientSocket* CreateTCPClientSocket(const AddressList& addresses, |
NetLog* net_log, |
@@ -890,13 +901,6 @@ class DeterministicMockClientSocketFactory : public ClientSocketFactory { |
CertVerifier* cert_verifier, |
DnsCertProvenanceChecker* dns_cert_checker); |
- SocketDataProviderArray<DeterministicSocketData>& mock_data() { |
- return mock_data_; |
- } |
- std::vector<DeterministicMockTCPClientSocket*>& tcp_client_sockets() { |
- return tcp_client_sockets_; |
- } |
- |
private: |
SocketDataProviderArray<DeterministicSocketData> mock_data_; |
SocketDataProviderArray<SSLSocketDataProvider> mock_ssl_data_; |