| Index: net/socket/socket_test_util.cc
|
| diff --git a/net/socket/socket_test_util.cc b/net/socket/socket_test_util.cc
|
| index 9e74d88291f7f3bc6c84bf8a69d910d35fd12b1e..360f34fc12d5b95f1c2716814e03aab6b9e97631 100644
|
| --- a/net/socket/socket_test_util.cc
|
| +++ b/net/socket/socket_test_util.cc
|
| @@ -256,10 +256,6 @@ MockSSLClientSocket::~MockSSLClientSocket() {
|
| Disconnect();
|
| }
|
|
|
| -void MockSSLClientSocket::GetSSLInfo(net::SSLInfo* ssl_info) {
|
| - ssl_info->Reset();
|
| -}
|
| -
|
| int MockSSLClientSocket::Connect(net::CompletionCallback* callback) {
|
| ConnectCallback* connect_callback = new ConnectCallback(
|
| this, callback, data_->connect.result);
|
| @@ -293,6 +289,16 @@ int MockSSLClientSocket::Write(net::IOBuffer* buf, int buf_len,
|
| return transport_->Write(buf, buf_len, callback);
|
| }
|
|
|
| +void MockSSLClientSocket::GetSSLInfo(net::SSLInfo* ssl_info) {
|
| + ssl_info->Reset();
|
| +}
|
| +
|
| +SSLClientSocket::NextProtoStatus MockSSLClientSocket::GetNextProto(
|
| + std::string* proto) {
|
| + *proto = data_->next_proto;
|
| + return data_->next_proto_status;
|
| +}
|
| +
|
| MockRead StaticSocketDataProvider::GetNextRead() {
|
| DCHECK(!at_read_eof());
|
| reads_[read_index_].time_stamp = base::Time::Now();
|
| @@ -386,6 +392,51 @@ void DynamicSocketDataProvider::SimulateRead(const char* data) {
|
| reads_.push_back(MockRead(data));
|
| }
|
|
|
| +DelayedSocketData::DelayedSocketData(
|
| + int write_delay, MockRead* reads, size_t reads_count,
|
| + MockWrite* writes, size_t writes_count)
|
| + : StaticSocketDataProvider(reads, reads_count, writes, writes_count),
|
| + write_delay_(write_delay),
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(factory_(this)) {
|
| + DCHECK_GE(write_delay_, 0);
|
| +}
|
| +
|
| +DelayedSocketData::DelayedSocketData(
|
| + const MockConnect& connect, int write_delay, MockRead* reads,
|
| + size_t reads_count, MockWrite* writes, size_t writes_count)
|
| + : StaticSocketDataProvider(reads, reads_count, writes, writes_count),
|
| + write_delay_(write_delay),
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(factory_(this)) {
|
| + DCHECK_GE(write_delay_, 0);
|
| + set_connect_data(connect);
|
| +}
|
| +
|
| +MockRead DelayedSocketData::GetNextRead() {
|
| + if (write_delay_)
|
| + return MockRead(true, ERR_IO_PENDING);
|
| + return StaticSocketDataProvider::GetNextRead();
|
| +}
|
| +
|
| +MockWriteResult DelayedSocketData::OnWrite(const std::string& data) {
|
| + MockWriteResult rv = StaticSocketDataProvider::OnWrite(data);
|
| + // Now that our write has completed, we can allow reads to continue.
|
| + if (!--write_delay_)
|
| + MessageLoop::current()->PostDelayedTask(FROM_HERE,
|
| + factory_.NewRunnableMethod(&DelayedSocketData::CompleteRead), 100);
|
| + return rv;
|
| +}
|
| +
|
| +void DelayedSocketData::Reset() {
|
| + set_socket(NULL);
|
| + factory_.RevokeAll();
|
| + StaticSocketDataProvider::Reset();
|
| +}
|
| +
|
| +void DelayedSocketData::CompleteRead() {
|
| + if (socket())
|
| + socket()->OnReadComplete(GetNextRead());
|
| +}
|
| +
|
| void MockClientSocketFactory::AddSocketDataProvider(
|
| SocketDataProvider* data) {
|
| mock_data_.Add(data);
|
|
|