Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(398)

Side by Side Diff: net/socket/ssl_client_socket_unittest.cc

Issue 1545233002: Convert Pass()→std::move() in //net (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/socket/ssl_client_socket_pool.cc ('k') | net/socket/ssl_server_socket_openssl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/socket/ssl_client_socket.h" 5 #include "net/socket/ssl_client_socket.h"
6 6
7 #include <utility>
8
7 #include "base/callback_helpers.h" 9 #include "base/callback_helpers.h"
8 #include "base/location.h" 10 #include "base/location.h"
9 #include "base/macros.h" 11 #include "base/macros.h"
10 #include "base/memory/ref_counted.h" 12 #include "base/memory/ref_counted.h"
11 #include "base/run_loop.h" 13 #include "base/run_loop.h"
12 #include "base/single_thread_task_runner.h" 14 #include "base/single_thread_task_runner.h"
13 #include "base/thread_task_runner_handle.h" 15 #include "base/thread_task_runner_handle.h"
14 #include "base/time/time.h" 16 #include "base/time/time.h"
15 #include "net/base/address_list.h" 17 #include "net/base/address_list.h"
16 #include "net/base/io_buffer.h" 18 #include "net/base/io_buffer.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 56
55 // WrappedStreamSocket is a base class that wraps an existing StreamSocket, 57 // WrappedStreamSocket is a base class that wraps an existing StreamSocket,
56 // forwarding the Socket and StreamSocket interfaces to the underlying 58 // forwarding the Socket and StreamSocket interfaces to the underlying
57 // transport. 59 // transport.
58 // This is to provide a common base class for subclasses to override specific 60 // This is to provide a common base class for subclasses to override specific
59 // StreamSocket methods for testing, while still communicating with a 'real' 61 // StreamSocket methods for testing, while still communicating with a 'real'
60 // StreamSocket. 62 // StreamSocket.
61 class WrappedStreamSocket : public StreamSocket { 63 class WrappedStreamSocket : public StreamSocket {
62 public: 64 public:
63 explicit WrappedStreamSocket(scoped_ptr<StreamSocket> transport) 65 explicit WrappedStreamSocket(scoped_ptr<StreamSocket> transport)
64 : transport_(transport.Pass()) {} 66 : transport_(std::move(transport)) {}
65 ~WrappedStreamSocket() override {} 67 ~WrappedStreamSocket() override {}
66 68
67 // StreamSocket implementation: 69 // StreamSocket implementation:
68 int Connect(const CompletionCallback& callback) override { 70 int Connect(const CompletionCallback& callback) override {
69 return transport_->Connect(callback); 71 return transport_->Connect(callback);
70 } 72 }
71 void Disconnect() override { transport_->Disconnect(); } 73 void Disconnect() override { transport_->Disconnect(); }
72 bool IsConnected() const override { return transport_->IsConnected(); } 74 bool IsConnected() const override { return transport_->IsConnected(); }
73 bool IsConnectedAndIdle() const override { 75 bool IsConnectedAndIdle() const override {
74 return transport_->IsConnectedAndIdle(); 76 return transport_->IsConnectedAndIdle();
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 State state_; 174 State state_;
173 scoped_refptr<GrowableIOBuffer> read_buffer_; 175 scoped_refptr<GrowableIOBuffer> read_buffer_;
174 int buffer_size_; 176 int buffer_size_;
175 177
176 scoped_refptr<IOBuffer> user_read_buf_; 178 scoped_refptr<IOBuffer> user_read_buf_;
177 CompletionCallback user_read_callback_; 179 CompletionCallback user_read_callback_;
178 }; 180 };
179 181
180 ReadBufferingStreamSocket::ReadBufferingStreamSocket( 182 ReadBufferingStreamSocket::ReadBufferingStreamSocket(
181 scoped_ptr<StreamSocket> transport) 183 scoped_ptr<StreamSocket> transport)
182 : WrappedStreamSocket(transport.Pass()), 184 : WrappedStreamSocket(std::move(transport)),
183 read_buffer_(new GrowableIOBuffer()), 185 read_buffer_(new GrowableIOBuffer()),
184 buffer_size_(0) {} 186 buffer_size_(0) {}
185 187
186 void ReadBufferingStreamSocket::SetBufferSize(int size) { 188 void ReadBufferingStreamSocket::SetBufferSize(int size) {
187 DCHECK(!user_read_buf_.get()); 189 DCHECK(!user_read_buf_.get());
188 buffer_size_ = size; 190 buffer_size_ = size;
189 read_buffer_->SetCapacity(size); 191 read_buffer_->SetCapacity(size);
190 } 192 }
191 193
192 int ReadBufferingStreamSocket::Read(IOBuffer* buf, 194 int ReadBufferingStreamSocket::Read(IOBuffer* buf,
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 int pending_read_error_; 308 int pending_read_error_;
307 309
308 bool have_write_error_; 310 bool have_write_error_;
309 int pending_write_error_; 311 int pending_write_error_;
310 312
311 DISALLOW_COPY_AND_ASSIGN(SynchronousErrorStreamSocket); 313 DISALLOW_COPY_AND_ASSIGN(SynchronousErrorStreamSocket);
312 }; 314 };
313 315
314 SynchronousErrorStreamSocket::SynchronousErrorStreamSocket( 316 SynchronousErrorStreamSocket::SynchronousErrorStreamSocket(
315 scoped_ptr<StreamSocket> transport) 317 scoped_ptr<StreamSocket> transport)
316 : WrappedStreamSocket(transport.Pass()), 318 : WrappedStreamSocket(std::move(transport)),
317 have_read_error_(false), 319 have_read_error_(false),
318 pending_read_error_(OK), 320 pending_read_error_(OK),
319 have_write_error_(false), 321 have_write_error_(false),
320 pending_write_error_(OK) {} 322 pending_write_error_(OK) {}
321 323
322 int SynchronousErrorStreamSocket::Read(IOBuffer* buf, 324 int SynchronousErrorStreamSocket::Read(IOBuffer* buf,
323 int buf_len, 325 int buf_len,
324 const CompletionCallback& callback) { 326 const CompletionCallback& callback) {
325 if (have_read_error_) 327 if (have_read_error_)
326 return pending_read_error_; 328 return pending_read_error_;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 410
409 // The length for the pending write, or -1 if not scheduled. 411 // The length for the pending write, or -1 if not scheduled.
410 int pending_write_len_; 412 int pending_write_len_;
411 413
412 // WaitForWrite() wait loop. 414 // WaitForWrite() wait loop.
413 scoped_ptr<base::RunLoop> write_loop_; 415 scoped_ptr<base::RunLoop> write_loop_;
414 }; 416 };
415 417
416 FakeBlockingStreamSocket::FakeBlockingStreamSocket( 418 FakeBlockingStreamSocket::FakeBlockingStreamSocket(
417 scoped_ptr<StreamSocket> transport) 419 scoped_ptr<StreamSocket> transport)
418 : WrappedStreamSocket(transport.Pass()), 420 : WrappedStreamSocket(std::move(transport)),
419 should_block_read_(false), 421 should_block_read_(false),
420 pending_read_result_(ERR_IO_PENDING), 422 pending_read_result_(ERR_IO_PENDING),
421 should_block_write_(false), 423 should_block_write_(false),
422 pending_write_len_(-1) {} 424 pending_write_len_(-1) {}
423 425
424 int FakeBlockingStreamSocket::Read(IOBuffer* buf, 426 int FakeBlockingStreamSocket::Read(IOBuffer* buf,
425 int len, 427 int len,
426 const CompletionCallback& callback) { 428 const CompletionCallback& callback) {
427 DCHECK(!pending_read_buf_); 429 DCHECK(!pending_read_buf_);
428 DCHECK(pending_read_callback_.is_null()); 430 DCHECK(pending_read_callback_.is_null());
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 pending_read_buf_ = nullptr; 558 pending_read_buf_ = nullptr;
557 base::ResetAndReturn(&pending_read_callback_).Run(result); 559 base::ResetAndReturn(&pending_read_callback_).Run(result);
558 } 560 }
559 } 561 }
560 562
561 // CountingStreamSocket wraps an existing StreamSocket and maintains a count of 563 // CountingStreamSocket wraps an existing StreamSocket and maintains a count of
562 // reads and writes on the socket. 564 // reads and writes on the socket.
563 class CountingStreamSocket : public WrappedStreamSocket { 565 class CountingStreamSocket : public WrappedStreamSocket {
564 public: 566 public:
565 explicit CountingStreamSocket(scoped_ptr<StreamSocket> transport) 567 explicit CountingStreamSocket(scoped_ptr<StreamSocket> transport)
566 : WrappedStreamSocket(transport.Pass()), 568 : WrappedStreamSocket(std::move(transport)),
567 read_count_(0), 569 read_count_(0),
568 write_count_(0) {} 570 write_count_(0) {}
569 ~CountingStreamSocket() override {} 571 ~CountingStreamSocket() override {}
570 572
571 // Socket implementation: 573 // Socket implementation:
572 int Read(IOBuffer* buf, 574 int Read(IOBuffer* buf,
573 int buf_len, 575 int buf_len,
574 const CompletionCallback& callback) override { 576 const CompletionCallback& callback) override {
575 read_count_++; 577 read_count_++;
576 return transport_->Read(buf, buf_len, callback); 578 return transport_->Read(buf, buf_len, callback);
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 return false; 731 return false;
730 } 732 }
731 return true; 733 return true;
732 } 734 }
733 735
734 scoped_ptr<SSLClientSocket> CreateSSLClientSocket( 736 scoped_ptr<SSLClientSocket> CreateSSLClientSocket(
735 scoped_ptr<StreamSocket> transport_socket, 737 scoped_ptr<StreamSocket> transport_socket,
736 const HostPortPair& host_and_port, 738 const HostPortPair& host_and_port,
737 const SSLConfig& ssl_config) { 739 const SSLConfig& ssl_config) {
738 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); 740 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle);
739 connection->SetSocket(transport_socket.Pass()); 741 connection->SetSocket(std::move(transport_socket));
740 return socket_factory_->CreateSSLClientSocket( 742 return socket_factory_->CreateSSLClientSocket(
741 connection.Pass(), host_and_port, ssl_config, context_); 743 std::move(connection), host_and_port, ssl_config, context_);
742 } 744 }
743 745
744 // Create an SSLClientSocket object and use it to connect to a test 746 // Create an SSLClientSocket object and use it to connect to a test
745 // server, then wait for connection results. This must be called after 747 // server, then wait for connection results. This must be called after
746 // a successful StartTestServer() call. 748 // a successful StartTestServer() call.
747 // |ssl_config| the SSL configuration to use. 749 // |ssl_config| the SSL configuration to use.
748 // |result| will retrieve the ::Connect() result value. 750 // |result| will retrieve the ::Connect() result value.
749 // Returns true on success, false otherwise. Success means that the SSL socket 751 // Returns true on success, false otherwise. Success means that the SSL socket
750 // could be created and its Connect() was called, not that the connection 752 // could be created and its Connect() was called, not that the connection
751 // itself was a success. 753 // itself was a success.
752 bool CreateAndConnectSSLClientSocket(const SSLConfig& ssl_config, 754 bool CreateAndConnectSSLClientSocket(const SSLConfig& ssl_config,
753 int* result) { 755 int* result) {
754 scoped_ptr<StreamSocket> transport( 756 scoped_ptr<StreamSocket> transport(
755 new TCPClientSocket(addr_, &log_, NetLog::Source())); 757 new TCPClientSocket(addr_, &log_, NetLog::Source()));
756 int rv = callback_.GetResult(transport->Connect(callback_.callback())); 758 int rv = callback_.GetResult(transport->Connect(callback_.callback()));
757 if (rv != OK) { 759 if (rv != OK) {
758 LOG(ERROR) << "Could not connect to SpawnedTestServer"; 760 LOG(ERROR) << "Could not connect to SpawnedTestServer";
759 return false; 761 return false;
760 } 762 }
761 763
762 sock_ = CreateSSLClientSocket( 764 sock_ = CreateSSLClientSocket(std::move(transport),
763 transport.Pass(), spawned_test_server_->host_port_pair(), ssl_config); 765 spawned_test_server_->host_port_pair(),
766 ssl_config);
764 EXPECT_FALSE(sock_->IsConnected()); 767 EXPECT_FALSE(sock_->IsConnected());
765 768
766 *result = callback_.GetResult(sock_->Connect(callback_.callback())); 769 *result = callback_.GetResult(sock_->Connect(callback_.callback()));
767 return true; 770 return true;
768 } 771 }
769 772
770 // Adds the server certificate with provided cert status. 773 // Adds the server certificate with provided cert status.
771 // Must be called after StartTestServer has been called. 774 // Must be called after StartTestServer has been called.
772 void AddServerCertStatusToSSLConfig(CertStatus status, 775 void AddServerCertStatusToSSLConfig(CertStatus status,
773 SSLConfig* ssl_config) { 776 SSLConfig* ssl_config) {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
812 return NULL; 815 return NULL;
813 816
814 TestCompletionCallback callback; 817 TestCompletionCallback callback;
815 TestNetLog log; 818 TestNetLog log;
816 scoped_ptr<StreamSocket> transport( 819 scoped_ptr<StreamSocket> transport(
817 new TCPClientSocket(addr, &log, NetLog::Source())); 820 new TCPClientSocket(addr, &log, NetLog::Source()));
818 int rv = callback.GetResult(transport->Connect(callback.callback())); 821 int rv = callback.GetResult(transport->Connect(callback.callback()));
819 EXPECT_EQ(OK, rv); 822 EXPECT_EQ(OK, rv);
820 823
821 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( 824 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
822 transport.Pass(), spawned_test_server.host_port_pair(), SSLConfig())); 825 std::move(transport), spawned_test_server.host_port_pair(),
826 SSLConfig()));
823 EXPECT_FALSE(sock->IsConnected()); 827 EXPECT_FALSE(sock->IsConnected());
824 828
825 rv = callback.GetResult(sock->Connect(callback.callback())); 829 rv = callback.GetResult(sock->Connect(callback.callback()));
826 EXPECT_EQ(ERR_SSL_CLIENT_AUTH_CERT_NEEDED, rv); 830 EXPECT_EQ(ERR_SSL_CLIENT_AUTH_CERT_NEEDED, rv);
827 831
828 scoped_refptr<SSLCertRequestInfo> request_info = new SSLCertRequestInfo(); 832 scoped_refptr<SSLCertRequestInfo> request_info = new SSLCertRequestInfo();
829 sock->GetSSLCertRequestInfo(request_info.get()); 833 sock->GetSSLCertRequestInfo(request_info.get());
830 sock->Disconnect(); 834 sock->Disconnect();
831 EXPECT_FALSE(sock->IsConnected()); 835 EXPECT_FALSE(sock->IsConnected());
832 EXPECT_TRUE(spawned_test_server.host_port_pair().Equals( 836 EXPECT_TRUE(spawned_test_server.host_port_pair().Equals(
(...skipping 21 matching lines...) Expand all
854 void CreateAndConnectUntilServerFinishedReceived( 858 void CreateAndConnectUntilServerFinishedReceived(
855 const SSLConfig& client_config, 859 const SSLConfig& client_config,
856 TestCompletionCallback* callback, 860 TestCompletionCallback* callback,
857 FakeBlockingStreamSocket** out_raw_transport, 861 FakeBlockingStreamSocket** out_raw_transport,
858 scoped_ptr<SSLClientSocket>* out_sock) { 862 scoped_ptr<SSLClientSocket>* out_sock) {
859 CHECK(spawned_test_server()); 863 CHECK(spawned_test_server());
860 864
861 scoped_ptr<StreamSocket> real_transport( 865 scoped_ptr<StreamSocket> real_transport(
862 new TCPClientSocket(addr(), NULL, NetLog::Source())); 866 new TCPClientSocket(addr(), NULL, NetLog::Source()));
863 scoped_ptr<FakeBlockingStreamSocket> transport( 867 scoped_ptr<FakeBlockingStreamSocket> transport(
864 new FakeBlockingStreamSocket(real_transport.Pass())); 868 new FakeBlockingStreamSocket(std::move(real_transport)));
865 int rv = callback->GetResult(transport->Connect(callback->callback())); 869 int rv = callback->GetResult(transport->Connect(callback->callback()));
866 EXPECT_EQ(OK, rv); 870 EXPECT_EQ(OK, rv);
867 871
868 FakeBlockingStreamSocket* raw_transport = transport.get(); 872 FakeBlockingStreamSocket* raw_transport = transport.get();
869 scoped_ptr<SSLClientSocket> sock = CreateSSLClientSocket( 873 scoped_ptr<SSLClientSocket> sock = CreateSSLClientSocket(
870 transport.Pass(), spawned_test_server()->host_port_pair(), 874 std::move(transport), spawned_test_server()->host_port_pair(),
871 client_config); 875 client_config);
872 876
873 // Connect. Stop before the client processes the first server leg 877 // Connect. Stop before the client processes the first server leg
874 // (ServerHello, etc.) 878 // (ServerHello, etc.)
875 raw_transport->BlockReadResult(); 879 raw_transport->BlockReadResult();
876 rv = sock->Connect(callback->callback()); 880 rv = sock->Connect(callback->callback());
877 EXPECT_EQ(ERR_IO_PENDING, rv); 881 EXPECT_EQ(ERR_IO_PENDING, rv);
878 raw_transport->WaitForReadResult(); 882 raw_transport->WaitForReadResult();
879 883
880 // Release the ServerHello and wait for the client to write 884 // Release the ServerHello and wait for the client to write
881 // ClientKeyExchange, etc. (A proxy for waiting for the entirety of the 885 // ClientKeyExchange, etc. (A proxy for waiting for the entirety of the
882 // server's leg to complete, since it may span multiple reads.) 886 // server's leg to complete, since it may span multiple reads.)
883 EXPECT_FALSE(callback->have_result()); 887 EXPECT_FALSE(callback->have_result());
884 raw_transport->BlockWrite(); 888 raw_transport->BlockWrite();
885 raw_transport->UnblockReadResult(); 889 raw_transport->UnblockReadResult();
886 raw_transport->WaitForWrite(); 890 raw_transport->WaitForWrite();
887 891
888 // And, finally, release that and block the next server leg 892 // And, finally, release that and block the next server leg
889 // (ChangeCipherSpec, Finished). 893 // (ChangeCipherSpec, Finished).
890 raw_transport->BlockReadResult(); 894 raw_transport->BlockReadResult();
891 raw_transport->UnblockWrite(); 895 raw_transport->UnblockWrite();
892 896
893 *out_raw_transport = raw_transport; 897 *out_raw_transport = raw_transport;
894 *out_sock = sock.Pass(); 898 *out_sock = std::move(sock);
895 } 899 }
896 900
897 void TestFalseStart(const SpawnedTestServer::SSLOptions& server_options, 901 void TestFalseStart(const SpawnedTestServer::SSLOptions& server_options,
898 const SSLConfig& client_config, 902 const SSLConfig& client_config,
899 bool expect_false_start) { 903 bool expect_false_start) {
900 ASSERT_TRUE(StartTestServer(server_options)); 904 ASSERT_TRUE(StartTestServer(server_options));
901 905
902 TestCompletionCallback callback; 906 TestCompletionCallback callback;
903 FakeBlockingStreamSocket* raw_transport = NULL; 907 FakeBlockingStreamSocket* raw_transport = NULL;
904 scoped_ptr<SSLClientSocket> sock; 908 scoped_ptr<SSLClientSocket> sock;
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
976 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions())); 980 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions()));
977 981
978 TestCompletionCallback callback; 982 TestCompletionCallback callback;
979 TestNetLog log; 983 TestNetLog log;
980 scoped_ptr<StreamSocket> transport( 984 scoped_ptr<StreamSocket> transport(
981 new TCPClientSocket(addr(), &log, NetLog::Source())); 985 new TCPClientSocket(addr(), &log, NetLog::Source()));
982 int rv = callback.GetResult(transport->Connect(callback.callback())); 986 int rv = callback.GetResult(transport->Connect(callback.callback()));
983 EXPECT_EQ(OK, rv); 987 EXPECT_EQ(OK, rv);
984 988
985 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( 989 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
986 transport.Pass(), spawned_test_server()->host_port_pair(), SSLConfig())); 990 std::move(transport), spawned_test_server()->host_port_pair(),
991 SSLConfig()));
987 992
988 EXPECT_FALSE(sock->IsConnected()); 993 EXPECT_FALSE(sock->IsConnected());
989 994
990 rv = sock->Connect(callback.callback()); 995 rv = sock->Connect(callback.callback());
991 996
992 TestNetLogEntry::List entries; 997 TestNetLogEntry::List entries;
993 log.GetEntries(&entries); 998 log.GetEntries(&entries);
994 EXPECT_TRUE(LogContainsBeginEvent(entries, 5, NetLog::TYPE_SSL_CONNECT)); 999 EXPECT_TRUE(LogContainsBeginEvent(entries, 5, NetLog::TYPE_SSL_CONNECT));
995 if (rv == ERR_IO_PENDING) 1000 if (rv == ERR_IO_PENDING)
996 rv = callback.WaitForResult(); 1001 rv = callback.WaitForResult();
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
1123 1128
1124 TestCompletionCallback callback; 1129 TestCompletionCallback callback;
1125 scoped_ptr<StreamSocket> transport( 1130 scoped_ptr<StreamSocket> transport(
1126 new TCPClientSocket(addr(), NULL, NetLog::Source())); 1131 new TCPClientSocket(addr(), NULL, NetLog::Source()));
1127 EXPECT_EQ(0, transport->GetTotalReceivedBytes()); 1132 EXPECT_EQ(0, transport->GetTotalReceivedBytes());
1128 1133
1129 int rv = callback.GetResult(transport->Connect(callback.callback())); 1134 int rv = callback.GetResult(transport->Connect(callback.callback()));
1130 EXPECT_EQ(OK, rv); 1135 EXPECT_EQ(OK, rv);
1131 1136
1132 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( 1137 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
1133 transport.Pass(), spawned_test_server()->host_port_pair(), SSLConfig())); 1138 std::move(transport), spawned_test_server()->host_port_pair(),
1139 SSLConfig()));
1134 EXPECT_EQ(0, sock->GetTotalReceivedBytes()); 1140 EXPECT_EQ(0, sock->GetTotalReceivedBytes());
1135 1141
1136 rv = callback.GetResult(sock->Connect(callback.callback())); 1142 rv = callback.GetResult(sock->Connect(callback.callback()));
1137 EXPECT_EQ(OK, rv); 1143 EXPECT_EQ(OK, rv);
1138 1144
1139 // Number of network bytes received should increase because of SSL socket 1145 // Number of network bytes received should increase because of SSL socket
1140 // establishment. 1146 // establishment.
1141 EXPECT_GT(sock->GetTotalReceivedBytes(), 0); 1147 EXPECT_GT(sock->GetTotalReceivedBytes(), 0);
1142 1148
1143 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; 1149 const char request_text[] = "GET / HTTP/1.0\r\n\r\n";
(...skipping 30 matching lines...) Expand all
1174 // Tests that SSLClientSocket properly handles when the underlying transport 1180 // Tests that SSLClientSocket properly handles when the underlying transport
1175 // synchronously fails a transport read in during the handshake. The error code 1181 // synchronously fails a transport read in during the handshake. The error code
1176 // should be preserved so SSLv3 fallback logic can condition on it. 1182 // should be preserved so SSLv3 fallback logic can condition on it.
1177 TEST_F(SSLClientSocketTest, Connect_WithSynchronousError) { 1183 TEST_F(SSLClientSocketTest, Connect_WithSynchronousError) {
1178 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions())); 1184 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions()));
1179 1185
1180 TestCompletionCallback callback; 1186 TestCompletionCallback callback;
1181 scoped_ptr<StreamSocket> real_transport( 1187 scoped_ptr<StreamSocket> real_transport(
1182 new TCPClientSocket(addr(), NULL, NetLog::Source())); 1188 new TCPClientSocket(addr(), NULL, NetLog::Source()));
1183 scoped_ptr<SynchronousErrorStreamSocket> transport( 1189 scoped_ptr<SynchronousErrorStreamSocket> transport(
1184 new SynchronousErrorStreamSocket(real_transport.Pass())); 1190 new SynchronousErrorStreamSocket(std::move(real_transport)));
1185 int rv = callback.GetResult(transport->Connect(callback.callback())); 1191 int rv = callback.GetResult(transport->Connect(callback.callback()));
1186 EXPECT_EQ(OK, rv); 1192 EXPECT_EQ(OK, rv);
1187 1193
1188 // Disable TLS False Start to avoid handshake non-determinism. 1194 // Disable TLS False Start to avoid handshake non-determinism.
1189 SSLConfig ssl_config; 1195 SSLConfig ssl_config;
1190 ssl_config.false_start_enabled = false; 1196 ssl_config.false_start_enabled = false;
1191 1197
1192 SynchronousErrorStreamSocket* raw_transport = transport.get(); 1198 SynchronousErrorStreamSocket* raw_transport = transport.get();
1193 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( 1199 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
1194 transport.Pass(), spawned_test_server()->host_port_pair(), ssl_config)); 1200 std::move(transport), spawned_test_server()->host_port_pair(),
1201 ssl_config));
1195 1202
1196 raw_transport->SetNextWriteError(ERR_CONNECTION_RESET); 1203 raw_transport->SetNextWriteError(ERR_CONNECTION_RESET);
1197 1204
1198 rv = callback.GetResult(sock->Connect(callback.callback())); 1205 rv = callback.GetResult(sock->Connect(callback.callback()));
1199 EXPECT_EQ(ERR_CONNECTION_RESET, rv); 1206 EXPECT_EQ(ERR_CONNECTION_RESET, rv);
1200 EXPECT_FALSE(sock->IsConnected()); 1207 EXPECT_FALSE(sock->IsConnected());
1201 } 1208 }
1202 1209
1203 // Tests that the SSLClientSocket properly handles when the underlying transport 1210 // Tests that the SSLClientSocket properly handles when the underlying transport
1204 // synchronously returns an error code - such as if an intermediary terminates 1211 // synchronously returns an error code - such as if an intermediary terminates
1205 // the socket connection uncleanly. 1212 // the socket connection uncleanly.
1206 // This is a regression test for http://crbug.com/238536 1213 // This is a regression test for http://crbug.com/238536
1207 TEST_F(SSLClientSocketTest, Read_WithSynchronousError) { 1214 TEST_F(SSLClientSocketTest, Read_WithSynchronousError) {
1208 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions())); 1215 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions()));
1209 1216
1210 TestCompletionCallback callback; 1217 TestCompletionCallback callback;
1211 scoped_ptr<StreamSocket> real_transport( 1218 scoped_ptr<StreamSocket> real_transport(
1212 new TCPClientSocket(addr(), NULL, NetLog::Source())); 1219 new TCPClientSocket(addr(), NULL, NetLog::Source()));
1213 scoped_ptr<SynchronousErrorStreamSocket> transport( 1220 scoped_ptr<SynchronousErrorStreamSocket> transport(
1214 new SynchronousErrorStreamSocket(real_transport.Pass())); 1221 new SynchronousErrorStreamSocket(std::move(real_transport)));
1215 int rv = callback.GetResult(transport->Connect(callback.callback())); 1222 int rv = callback.GetResult(transport->Connect(callback.callback()));
1216 EXPECT_EQ(OK, rv); 1223 EXPECT_EQ(OK, rv);
1217 1224
1218 // Disable TLS False Start to avoid handshake non-determinism. 1225 // Disable TLS False Start to avoid handshake non-determinism.
1219 SSLConfig ssl_config; 1226 SSLConfig ssl_config;
1220 ssl_config.false_start_enabled = false; 1227 ssl_config.false_start_enabled = false;
1221 1228
1222 SynchronousErrorStreamSocket* raw_transport = transport.get(); 1229 SynchronousErrorStreamSocket* raw_transport = transport.get();
1223 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( 1230 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
1224 transport.Pass(), spawned_test_server()->host_port_pair(), ssl_config)); 1231 std::move(transport), spawned_test_server()->host_port_pair(),
1232 ssl_config));
1225 1233
1226 rv = callback.GetResult(sock->Connect(callback.callback())); 1234 rv = callback.GetResult(sock->Connect(callback.callback()));
1227 EXPECT_EQ(OK, rv); 1235 EXPECT_EQ(OK, rv);
1228 EXPECT_TRUE(sock->IsConnected()); 1236 EXPECT_TRUE(sock->IsConnected());
1229 1237
1230 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; 1238 const char request_text[] = "GET / HTTP/1.0\r\n\r\n";
1231 static const int kRequestTextSize = 1239 static const int kRequestTextSize =
1232 static_cast<int>(arraysize(request_text) - 1); 1240 static_cast<int>(arraysize(request_text) - 1);
1233 scoped_refptr<IOBuffer> request_buffer(new IOBuffer(kRequestTextSize)); 1241 scoped_refptr<IOBuffer> request_buffer(new IOBuffer(kRequestTextSize));
1234 memcpy(request_buffer->data(), request_text, kRequestTextSize); 1242 memcpy(request_buffer->data(), request_text, kRequestTextSize);
(...skipping 20 matching lines...) Expand all
1255 // This is a regression test for http://crbug.com/249848 1263 // This is a regression test for http://crbug.com/249848
1256 TEST_F(SSLClientSocketTest, Write_WithSynchronousError) { 1264 TEST_F(SSLClientSocketTest, Write_WithSynchronousError) {
1257 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions())); 1265 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions()));
1258 1266
1259 TestCompletionCallback callback; 1267 TestCompletionCallback callback;
1260 scoped_ptr<StreamSocket> real_transport( 1268 scoped_ptr<StreamSocket> real_transport(
1261 new TCPClientSocket(addr(), NULL, NetLog::Source())); 1269 new TCPClientSocket(addr(), NULL, NetLog::Source()));
1262 // Note: |error_socket|'s ownership is handed to |transport|, but a pointer 1270 // Note: |error_socket|'s ownership is handed to |transport|, but a pointer
1263 // is retained in order to configure additional errors. 1271 // is retained in order to configure additional errors.
1264 scoped_ptr<SynchronousErrorStreamSocket> error_socket( 1272 scoped_ptr<SynchronousErrorStreamSocket> error_socket(
1265 new SynchronousErrorStreamSocket(real_transport.Pass())); 1273 new SynchronousErrorStreamSocket(std::move(real_transport)));
1266 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); 1274 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get();
1267 scoped_ptr<FakeBlockingStreamSocket> transport( 1275 scoped_ptr<FakeBlockingStreamSocket> transport(
1268 new FakeBlockingStreamSocket(error_socket.Pass())); 1276 new FakeBlockingStreamSocket(std::move(error_socket)));
1269 FakeBlockingStreamSocket* raw_transport = transport.get(); 1277 FakeBlockingStreamSocket* raw_transport = transport.get();
1270 int rv = callback.GetResult(transport->Connect(callback.callback())); 1278 int rv = callback.GetResult(transport->Connect(callback.callback()));
1271 EXPECT_EQ(OK, rv); 1279 EXPECT_EQ(OK, rv);
1272 1280
1273 // Disable TLS False Start to avoid handshake non-determinism. 1281 // Disable TLS False Start to avoid handshake non-determinism.
1274 SSLConfig ssl_config; 1282 SSLConfig ssl_config;
1275 ssl_config.false_start_enabled = false; 1283 ssl_config.false_start_enabled = false;
1276 1284
1277 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( 1285 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
1278 transport.Pass(), spawned_test_server()->host_port_pair(), ssl_config)); 1286 std::move(transport), spawned_test_server()->host_port_pair(),
1287 ssl_config));
1279 1288
1280 rv = callback.GetResult(sock->Connect(callback.callback())); 1289 rv = callback.GetResult(sock->Connect(callback.callback()));
1281 EXPECT_EQ(OK, rv); 1290 EXPECT_EQ(OK, rv);
1282 EXPECT_TRUE(sock->IsConnected()); 1291 EXPECT_TRUE(sock->IsConnected());
1283 1292
1284 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; 1293 const char request_text[] = "GET / HTTP/1.0\r\n\r\n";
1285 static const int kRequestTextSize = 1294 static const int kRequestTextSize =
1286 static_cast<int>(arraysize(request_text) - 1); 1295 static_cast<int>(arraysize(request_text) - 1);
1287 scoped_refptr<IOBuffer> request_buffer(new IOBuffer(kRequestTextSize)); 1296 scoped_refptr<IOBuffer> request_buffer(new IOBuffer(kRequestTextSize));
1288 memcpy(request_buffer->data(), request_text, kRequestTextSize); 1297 memcpy(request_buffer->data(), request_text, kRequestTextSize);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1321 // the socket. This is a regression test for part of https://crbug.com/381160. 1330 // the socket. This is a regression test for part of https://crbug.com/381160.
1322 TEST_F(SSLClientSocketTest, Write_WithSynchronousErrorNoRead) { 1331 TEST_F(SSLClientSocketTest, Write_WithSynchronousErrorNoRead) {
1323 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions())); 1332 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions()));
1324 1333
1325 TestCompletionCallback callback; 1334 TestCompletionCallback callback;
1326 scoped_ptr<StreamSocket> real_transport( 1335 scoped_ptr<StreamSocket> real_transport(
1327 new TCPClientSocket(addr(), NULL, NetLog::Source())); 1336 new TCPClientSocket(addr(), NULL, NetLog::Source()));
1328 // Note: intermediate sockets' ownership are handed to |sock|, but a pointer 1337 // Note: intermediate sockets' ownership are handed to |sock|, but a pointer
1329 // is retained in order to query them. 1338 // is retained in order to query them.
1330 scoped_ptr<SynchronousErrorStreamSocket> error_socket( 1339 scoped_ptr<SynchronousErrorStreamSocket> error_socket(
1331 new SynchronousErrorStreamSocket(real_transport.Pass())); 1340 new SynchronousErrorStreamSocket(std::move(real_transport)));
1332 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); 1341 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get();
1333 scoped_ptr<CountingStreamSocket> counting_socket( 1342 scoped_ptr<CountingStreamSocket> counting_socket(
1334 new CountingStreamSocket(error_socket.Pass())); 1343 new CountingStreamSocket(std::move(error_socket)));
1335 CountingStreamSocket* raw_counting_socket = counting_socket.get(); 1344 CountingStreamSocket* raw_counting_socket = counting_socket.get();
1336 int rv = callback.GetResult(counting_socket->Connect(callback.callback())); 1345 int rv = callback.GetResult(counting_socket->Connect(callback.callback()));
1337 ASSERT_EQ(OK, rv); 1346 ASSERT_EQ(OK, rv);
1338 1347
1339 // Disable TLS False Start to avoid handshake non-determinism. 1348 // Disable TLS False Start to avoid handshake non-determinism.
1340 SSLConfig ssl_config; 1349 SSLConfig ssl_config;
1341 ssl_config.false_start_enabled = false; 1350 ssl_config.false_start_enabled = false;
1342 1351
1343 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( 1352 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
1344 counting_socket.Pass(), spawned_test_server()->host_port_pair(), 1353 std::move(counting_socket), spawned_test_server()->host_port_pair(),
1345 ssl_config)); 1354 ssl_config));
1346 1355
1347 rv = callback.GetResult(sock->Connect(callback.callback())); 1356 rv = callback.GetResult(sock->Connect(callback.callback()));
1348 ASSERT_EQ(OK, rv); 1357 ASSERT_EQ(OK, rv);
1349 ASSERT_TRUE(sock->IsConnected()); 1358 ASSERT_TRUE(sock->IsConnected());
1350 1359
1351 // Simulate an unclean/forcible shutdown on the underlying socket. 1360 // Simulate an unclean/forcible shutdown on the underlying socket.
1352 raw_error_socket->SetNextWriteError(ERR_CONNECTION_RESET); 1361 raw_error_socket->SetNextWriteError(ERR_CONNECTION_RESET);
1353 1362
1354 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; 1363 const char request_text[] = "GET / HTTP/1.0\r\n\r\n";
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
1421 // Regression test for http://crbug.com/232633 1430 // Regression test for http://crbug.com/232633
1422 TEST_F(SSLClientSocketTest, Read_DeleteWhilePendingFullDuplex) { 1431 TEST_F(SSLClientSocketTest, Read_DeleteWhilePendingFullDuplex) {
1423 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions())); 1432 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions()));
1424 1433
1425 TestCompletionCallback callback; 1434 TestCompletionCallback callback;
1426 scoped_ptr<StreamSocket> real_transport( 1435 scoped_ptr<StreamSocket> real_transport(
1427 new TCPClientSocket(addr(), NULL, NetLog::Source())); 1436 new TCPClientSocket(addr(), NULL, NetLog::Source()));
1428 // Note: |error_socket|'s ownership is handed to |transport|, but a pointer 1437 // Note: |error_socket|'s ownership is handed to |transport|, but a pointer
1429 // is retained in order to configure additional errors. 1438 // is retained in order to configure additional errors.
1430 scoped_ptr<SynchronousErrorStreamSocket> error_socket( 1439 scoped_ptr<SynchronousErrorStreamSocket> error_socket(
1431 new SynchronousErrorStreamSocket(real_transport.Pass())); 1440 new SynchronousErrorStreamSocket(std::move(real_transport)));
1432 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); 1441 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get();
1433 scoped_ptr<FakeBlockingStreamSocket> transport( 1442 scoped_ptr<FakeBlockingStreamSocket> transport(
1434 new FakeBlockingStreamSocket(error_socket.Pass())); 1443 new FakeBlockingStreamSocket(std::move(error_socket)));
1435 FakeBlockingStreamSocket* raw_transport = transport.get(); 1444 FakeBlockingStreamSocket* raw_transport = transport.get();
1436 1445
1437 int rv = callback.GetResult(transport->Connect(callback.callback())); 1446 int rv = callback.GetResult(transport->Connect(callback.callback()));
1438 EXPECT_EQ(OK, rv); 1447 EXPECT_EQ(OK, rv);
1439 1448
1440 // Disable TLS False Start to avoid handshake non-determinism. 1449 // Disable TLS False Start to avoid handshake non-determinism.
1441 SSLConfig ssl_config; 1450 SSLConfig ssl_config;
1442 ssl_config.false_start_enabled = false; 1451 ssl_config.false_start_enabled = false;
1443 1452
1444 scoped_ptr<SSLClientSocket> sock = CreateSSLClientSocket( 1453 scoped_ptr<SSLClientSocket> sock = CreateSSLClientSocket(
1445 transport.Pass(), spawned_test_server()->host_port_pair(), ssl_config); 1454 std::move(transport), spawned_test_server()->host_port_pair(),
1455 ssl_config);
1446 1456
1447 rv = callback.GetResult(sock->Connect(callback.callback())); 1457 rv = callback.GetResult(sock->Connect(callback.callback()));
1448 EXPECT_EQ(OK, rv); 1458 EXPECT_EQ(OK, rv);
1449 EXPECT_TRUE(sock->IsConnected()); 1459 EXPECT_TRUE(sock->IsConnected());
1450 1460
1451 std::string request_text = "GET / HTTP/1.1\r\nUser-Agent: long browser name "; 1461 std::string request_text = "GET / HTTP/1.1\r\nUser-Agent: long browser name ";
1452 request_text.append(20 * 1024, '*'); 1462 request_text.append(20 * 1024, '*');
1453 request_text.append("\r\n\r\n"); 1463 request_text.append("\r\n\r\n");
1454 scoped_refptr<DrainableIOBuffer> request_buffer(new DrainableIOBuffer( 1464 scoped_refptr<DrainableIOBuffer> request_buffer(new DrainableIOBuffer(
1455 new StringIOBuffer(request_text), request_text.size())); 1465 new StringIOBuffer(request_text), request_text.size()));
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1529 // Regression test for http://crbug.com/335557 1539 // Regression test for http://crbug.com/335557
1530 TEST_F(SSLClientSocketTest, Read_WithWriteError) { 1540 TEST_F(SSLClientSocketTest, Read_WithWriteError) {
1531 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions())); 1541 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions()));
1532 1542
1533 TestCompletionCallback callback; 1543 TestCompletionCallback callback;
1534 scoped_ptr<StreamSocket> real_transport( 1544 scoped_ptr<StreamSocket> real_transport(
1535 new TCPClientSocket(addr(), NULL, NetLog::Source())); 1545 new TCPClientSocket(addr(), NULL, NetLog::Source()));
1536 // Note: |error_socket|'s ownership is handed to |transport|, but a pointer 1546 // Note: |error_socket|'s ownership is handed to |transport|, but a pointer
1537 // is retained in order to configure additional errors. 1547 // is retained in order to configure additional errors.
1538 scoped_ptr<SynchronousErrorStreamSocket> error_socket( 1548 scoped_ptr<SynchronousErrorStreamSocket> error_socket(
1539 new SynchronousErrorStreamSocket(real_transport.Pass())); 1549 new SynchronousErrorStreamSocket(std::move(real_transport)));
1540 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); 1550 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get();
1541 scoped_ptr<FakeBlockingStreamSocket> transport( 1551 scoped_ptr<FakeBlockingStreamSocket> transport(
1542 new FakeBlockingStreamSocket(error_socket.Pass())); 1552 new FakeBlockingStreamSocket(std::move(error_socket)));
1543 FakeBlockingStreamSocket* raw_transport = transport.get(); 1553 FakeBlockingStreamSocket* raw_transport = transport.get();
1544 1554
1545 int rv = callback.GetResult(transport->Connect(callback.callback())); 1555 int rv = callback.GetResult(transport->Connect(callback.callback()));
1546 EXPECT_EQ(OK, rv); 1556 EXPECT_EQ(OK, rv);
1547 1557
1548 // Disable TLS False Start to avoid handshake non-determinism. 1558 // Disable TLS False Start to avoid handshake non-determinism.
1549 SSLConfig ssl_config; 1559 SSLConfig ssl_config;
1550 ssl_config.false_start_enabled = false; 1560 ssl_config.false_start_enabled = false;
1551 1561
1552 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( 1562 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
1553 transport.Pass(), spawned_test_server()->host_port_pair(), ssl_config)); 1563 std::move(transport), spawned_test_server()->host_port_pair(),
1564 ssl_config));
1554 1565
1555 rv = callback.GetResult(sock->Connect(callback.callback())); 1566 rv = callback.GetResult(sock->Connect(callback.callback()));
1556 EXPECT_EQ(OK, rv); 1567 EXPECT_EQ(OK, rv);
1557 EXPECT_TRUE(sock->IsConnected()); 1568 EXPECT_TRUE(sock->IsConnected());
1558 1569
1559 // Send a request so there is something to read from the socket. 1570 // Send a request so there is something to read from the socket.
1560 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; 1571 const char request_text[] = "GET / HTTP/1.0\r\n\r\n";
1561 static const int kRequestTextSize = 1572 static const int kRequestTextSize =
1562 static_cast<int>(arraysize(request_text) - 1); 1573 static_cast<int>(arraysize(request_text) - 1);
1563 scoped_refptr<IOBuffer> request_buffer(new IOBuffer(kRequestTextSize)); 1574 scoped_refptr<IOBuffer> request_buffer(new IOBuffer(kRequestTextSize));
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1623 1634
1624 // Tests that SSLClientSocket fails the handshake if the underlying 1635 // Tests that SSLClientSocket fails the handshake if the underlying
1625 // transport is cleanly closed. 1636 // transport is cleanly closed.
1626 TEST_F(SSLClientSocketTest, Connect_WithZeroReturn) { 1637 TEST_F(SSLClientSocketTest, Connect_WithZeroReturn) {
1627 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions())); 1638 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions()));
1628 1639
1629 TestCompletionCallback callback; 1640 TestCompletionCallback callback;
1630 scoped_ptr<StreamSocket> real_transport( 1641 scoped_ptr<StreamSocket> real_transport(
1631 new TCPClientSocket(addr(), NULL, NetLog::Source())); 1642 new TCPClientSocket(addr(), NULL, NetLog::Source()));
1632 scoped_ptr<SynchronousErrorStreamSocket> transport( 1643 scoped_ptr<SynchronousErrorStreamSocket> transport(
1633 new SynchronousErrorStreamSocket(real_transport.Pass())); 1644 new SynchronousErrorStreamSocket(std::move(real_transport)));
1634 int rv = callback.GetResult(transport->Connect(callback.callback())); 1645 int rv = callback.GetResult(transport->Connect(callback.callback()));
1635 EXPECT_EQ(OK, rv); 1646 EXPECT_EQ(OK, rv);
1636 1647
1637 SynchronousErrorStreamSocket* raw_transport = transport.get(); 1648 SynchronousErrorStreamSocket* raw_transport = transport.get();
1638 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( 1649 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
1639 transport.Pass(), spawned_test_server()->host_port_pair(), SSLConfig())); 1650 std::move(transport), spawned_test_server()->host_port_pair(),
1651 SSLConfig()));
1640 1652
1641 raw_transport->SetNextReadError(0); 1653 raw_transport->SetNextReadError(0);
1642 1654
1643 rv = callback.GetResult(sock->Connect(callback.callback())); 1655 rv = callback.GetResult(sock->Connect(callback.callback()));
1644 EXPECT_EQ(ERR_CONNECTION_CLOSED, rv); 1656 EXPECT_EQ(ERR_CONNECTION_CLOSED, rv);
1645 EXPECT_FALSE(sock->IsConnected()); 1657 EXPECT_FALSE(sock->IsConnected());
1646 } 1658 }
1647 1659
1648 // Tests that SSLClientSocket returns a Read of size 0 if the underlying socket 1660 // Tests that SSLClientSocket returns a Read of size 0 if the underlying socket
1649 // is cleanly closed, but the peer does not send close_notify. 1661 // is cleanly closed, but the peer does not send close_notify.
1650 // This is a regression test for https://crbug.com/422246 1662 // This is a regression test for https://crbug.com/422246
1651 TEST_F(SSLClientSocketTest, Read_WithZeroReturn) { 1663 TEST_F(SSLClientSocketTest, Read_WithZeroReturn) {
1652 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions())); 1664 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions()));
1653 1665
1654 TestCompletionCallback callback; 1666 TestCompletionCallback callback;
1655 scoped_ptr<StreamSocket> real_transport( 1667 scoped_ptr<StreamSocket> real_transport(
1656 new TCPClientSocket(addr(), NULL, NetLog::Source())); 1668 new TCPClientSocket(addr(), NULL, NetLog::Source()));
1657 scoped_ptr<SynchronousErrorStreamSocket> transport( 1669 scoped_ptr<SynchronousErrorStreamSocket> transport(
1658 new SynchronousErrorStreamSocket(real_transport.Pass())); 1670 new SynchronousErrorStreamSocket(std::move(real_transport)));
1659 int rv = callback.GetResult(transport->Connect(callback.callback())); 1671 int rv = callback.GetResult(transport->Connect(callback.callback()));
1660 EXPECT_EQ(OK, rv); 1672 EXPECT_EQ(OK, rv);
1661 1673
1662 // Disable TLS False Start to ensure the handshake has completed. 1674 // Disable TLS False Start to ensure the handshake has completed.
1663 SSLConfig ssl_config; 1675 SSLConfig ssl_config;
1664 ssl_config.false_start_enabled = false; 1676 ssl_config.false_start_enabled = false;
1665 1677
1666 SynchronousErrorStreamSocket* raw_transport = transport.get(); 1678 SynchronousErrorStreamSocket* raw_transport = transport.get();
1667 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( 1679 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
1668 transport.Pass(), spawned_test_server()->host_port_pair(), ssl_config)); 1680 std::move(transport), spawned_test_server()->host_port_pair(),
1681 ssl_config));
1669 1682
1670 rv = callback.GetResult(sock->Connect(callback.callback())); 1683 rv = callback.GetResult(sock->Connect(callback.callback()));
1671 EXPECT_EQ(OK, rv); 1684 EXPECT_EQ(OK, rv);
1672 EXPECT_TRUE(sock->IsConnected()); 1685 EXPECT_TRUE(sock->IsConnected());
1673 1686
1674 raw_transport->SetNextReadError(0); 1687 raw_transport->SetNextReadError(0);
1675 scoped_refptr<IOBuffer> buf(new IOBuffer(4096)); 1688 scoped_refptr<IOBuffer> buf(new IOBuffer(4096));
1676 rv = callback.GetResult(sock->Read(buf.get(), 4096, callback.callback())); 1689 rv = callback.GetResult(sock->Read(buf.get(), 4096, callback.callback()));
1677 EXPECT_EQ(0, rv); 1690 EXPECT_EQ(0, rv);
1678 } 1691 }
1679 1692
1680 // Tests that SSLClientSocket cleanly returns a Read of size 0 if the 1693 // Tests that SSLClientSocket cleanly returns a Read of size 0 if the
1681 // underlying socket is cleanly closed asynchronously. 1694 // underlying socket is cleanly closed asynchronously.
1682 // This is a regression test for https://crbug.com/422246 1695 // This is a regression test for https://crbug.com/422246
1683 TEST_F(SSLClientSocketTest, Read_WithAsyncZeroReturn) { 1696 TEST_F(SSLClientSocketTest, Read_WithAsyncZeroReturn) {
1684 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions())); 1697 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions()));
1685 1698
1686 TestCompletionCallback callback; 1699 TestCompletionCallback callback;
1687 scoped_ptr<StreamSocket> real_transport( 1700 scoped_ptr<StreamSocket> real_transport(
1688 new TCPClientSocket(addr(), NULL, NetLog::Source())); 1701 new TCPClientSocket(addr(), NULL, NetLog::Source()));
1689 scoped_ptr<SynchronousErrorStreamSocket> error_socket( 1702 scoped_ptr<SynchronousErrorStreamSocket> error_socket(
1690 new SynchronousErrorStreamSocket(real_transport.Pass())); 1703 new SynchronousErrorStreamSocket(std::move(real_transport)));
1691 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); 1704 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get();
1692 scoped_ptr<FakeBlockingStreamSocket> transport( 1705 scoped_ptr<FakeBlockingStreamSocket> transport(
1693 new FakeBlockingStreamSocket(error_socket.Pass())); 1706 new FakeBlockingStreamSocket(std::move(error_socket)));
1694 FakeBlockingStreamSocket* raw_transport = transport.get(); 1707 FakeBlockingStreamSocket* raw_transport = transport.get();
1695 int rv = callback.GetResult(transport->Connect(callback.callback())); 1708 int rv = callback.GetResult(transport->Connect(callback.callback()));
1696 EXPECT_EQ(OK, rv); 1709 EXPECT_EQ(OK, rv);
1697 1710
1698 // Disable TLS False Start to ensure the handshake has completed. 1711 // Disable TLS False Start to ensure the handshake has completed.
1699 SSLConfig ssl_config; 1712 SSLConfig ssl_config;
1700 ssl_config.false_start_enabled = false; 1713 ssl_config.false_start_enabled = false;
1701 1714
1702 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( 1715 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
1703 transport.Pass(), spawned_test_server()->host_port_pair(), ssl_config)); 1716 std::move(transport), spawned_test_server()->host_port_pair(),
1717 ssl_config));
1704 1718
1705 rv = callback.GetResult(sock->Connect(callback.callback())); 1719 rv = callback.GetResult(sock->Connect(callback.callback()));
1706 EXPECT_EQ(OK, rv); 1720 EXPECT_EQ(OK, rv);
1707 EXPECT_TRUE(sock->IsConnected()); 1721 EXPECT_TRUE(sock->IsConnected());
1708 1722
1709 raw_error_socket->SetNextReadError(0); 1723 raw_error_socket->SetNextReadError(0);
1710 raw_transport->BlockReadResult(); 1724 raw_transport->BlockReadResult();
1711 scoped_refptr<IOBuffer> buf(new IOBuffer(4096)); 1725 scoped_refptr<IOBuffer> buf(new IOBuffer(4096));
1712 rv = sock->Read(buf.get(), 4096, callback.callback()); 1726 rv = sock->Read(buf.get(), 4096, callback.callback());
1713 EXPECT_EQ(ERR_IO_PENDING, rv); 1727 EXPECT_EQ(ERR_IO_PENDING, rv);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1760 } 1774 }
1761 1775
1762 TEST_F(SSLClientSocketTest, Read_ManySmallRecords) { 1776 TEST_F(SSLClientSocketTest, Read_ManySmallRecords) {
1763 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions())); 1777 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions()));
1764 1778
1765 TestCompletionCallback callback; 1779 TestCompletionCallback callback;
1766 1780
1767 scoped_ptr<StreamSocket> real_transport( 1781 scoped_ptr<StreamSocket> real_transport(
1768 new TCPClientSocket(addr(), NULL, NetLog::Source())); 1782 new TCPClientSocket(addr(), NULL, NetLog::Source()));
1769 scoped_ptr<ReadBufferingStreamSocket> transport( 1783 scoped_ptr<ReadBufferingStreamSocket> transport(
1770 new ReadBufferingStreamSocket(real_transport.Pass())); 1784 new ReadBufferingStreamSocket(std::move(real_transport)));
1771 ReadBufferingStreamSocket* raw_transport = transport.get(); 1785 ReadBufferingStreamSocket* raw_transport = transport.get();
1772 int rv = callback.GetResult(transport->Connect(callback.callback())); 1786 int rv = callback.GetResult(transport->Connect(callback.callback()));
1773 ASSERT_EQ(OK, rv); 1787 ASSERT_EQ(OK, rv);
1774 1788
1775 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( 1789 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
1776 transport.Pass(), spawned_test_server()->host_port_pair(), SSLConfig())); 1790 std::move(transport), spawned_test_server()->host_port_pair(),
1791 SSLConfig()));
1777 1792
1778 rv = callback.GetResult(sock->Connect(callback.callback())); 1793 rv = callback.GetResult(sock->Connect(callback.callback()));
1779 ASSERT_EQ(OK, rv); 1794 ASSERT_EQ(OK, rv);
1780 ASSERT_TRUE(sock->IsConnected()); 1795 ASSERT_TRUE(sock->IsConnected());
1781 1796
1782 const char request_text[] = "GET /ssl-many-small-records HTTP/1.0\r\n\r\n"; 1797 const char request_text[] = "GET /ssl-many-small-records HTTP/1.0\r\n\r\n";
1783 scoped_refptr<IOBuffer> request_buffer( 1798 scoped_refptr<IOBuffer> request_buffer(
1784 new IOBuffer(arraysize(request_text) - 1)); 1799 new IOBuffer(arraysize(request_text) - 1));
1785 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1); 1800 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1);
1786 1801
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1833 1848
1834 TestCompletionCallback callback; 1849 TestCompletionCallback callback;
1835 TestNetLog log; 1850 TestNetLog log;
1836 log.SetCaptureMode(NetLogCaptureMode::IncludeSocketBytes()); 1851 log.SetCaptureMode(NetLogCaptureMode::IncludeSocketBytes());
1837 scoped_ptr<StreamSocket> transport( 1852 scoped_ptr<StreamSocket> transport(
1838 new TCPClientSocket(addr(), &log, NetLog::Source())); 1853 new TCPClientSocket(addr(), &log, NetLog::Source()));
1839 int rv = callback.GetResult(transport->Connect(callback.callback())); 1854 int rv = callback.GetResult(transport->Connect(callback.callback()));
1840 EXPECT_EQ(OK, rv); 1855 EXPECT_EQ(OK, rv);
1841 1856
1842 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( 1857 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
1843 transport.Pass(), spawned_test_server()->host_port_pair(), SSLConfig())); 1858 std::move(transport), spawned_test_server()->host_port_pair(),
1859 SSLConfig()));
1844 1860
1845 rv = callback.GetResult(sock->Connect(callback.callback())); 1861 rv = callback.GetResult(sock->Connect(callback.callback()));
1846 EXPECT_EQ(OK, rv); 1862 EXPECT_EQ(OK, rv);
1847 EXPECT_TRUE(sock->IsConnected()); 1863 EXPECT_TRUE(sock->IsConnected());
1848 1864
1849 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; 1865 const char request_text[] = "GET / HTTP/1.0\r\n\r\n";
1850 scoped_refptr<IOBuffer> request_buffer( 1866 scoped_refptr<IOBuffer> request_buffer(
1851 new IOBuffer(arraysize(request_text) - 1)); 1867 new IOBuffer(arraysize(request_text) - 1));
1852 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1); 1868 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1);
1853 1869
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1901 1917
1902 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); 1918 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
1903 1919
1904 TestCompletionCallback callback; 1920 TestCompletionCallback callback;
1905 scoped_ptr<StreamSocket> transport( 1921 scoped_ptr<StreamSocket> transport(
1906 new MockTCPClientSocket(addr(), NULL, &data)); 1922 new MockTCPClientSocket(addr(), NULL, &data));
1907 int rv = callback.GetResult(transport->Connect(callback.callback())); 1923 int rv = callback.GetResult(transport->Connect(callback.callback()));
1908 EXPECT_EQ(OK, rv); 1924 EXPECT_EQ(OK, rv);
1909 1925
1910 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( 1926 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
1911 transport.Pass(), spawned_test_server()->host_port_pair(), SSLConfig())); 1927 std::move(transport), spawned_test_server()->host_port_pair(),
1928 SSLConfig()));
1912 1929
1913 rv = callback.GetResult(sock->Connect(callback.callback())); 1930 rv = callback.GetResult(sock->Connect(callback.callback()));
1914 EXPECT_EQ(ERR_SSL_PROTOCOL_ERROR, rv); 1931 EXPECT_EQ(ERR_SSL_PROTOCOL_ERROR, rv);
1915 } 1932 }
1916 1933
1917 TEST_F(SSLClientSocketTest, CipherSuiteDisables) { 1934 TEST_F(SSLClientSocketTest, CipherSuiteDisables) {
1918 // Rather than exhaustively disabling every AES_128_CBC ciphersuite defined at 1935 // Rather than exhaustively disabling every AES_128_CBC ciphersuite defined at
1919 // http://www.iana.org/assignments/tls-parameters/tls-parameters.xml, only 1936 // http://www.iana.org/assignments/tls-parameters/tls-parameters.xml, only
1920 // disabling those cipher suites that the test server actually implements. 1937 // disabling those cipher suites that the test server actually implements.
1921 const uint16_t kCiphersToDisable[] = { 1938 const uint16_t kCiphersToDisable[] = {
(...skipping 23 matching lines...) Expand all
1945 TEST_F(SSLClientSocketTest, ClientSocketHandleNotFromPool) { 1962 TEST_F(SSLClientSocketTest, ClientSocketHandleNotFromPool) {
1946 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions())); 1963 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions()));
1947 1964
1948 TestCompletionCallback callback; 1965 TestCompletionCallback callback;
1949 scoped_ptr<StreamSocket> transport( 1966 scoped_ptr<StreamSocket> transport(
1950 new TCPClientSocket(addr(), NULL, NetLog::Source())); 1967 new TCPClientSocket(addr(), NULL, NetLog::Source()));
1951 int rv = callback.GetResult(transport->Connect(callback.callback())); 1968 int rv = callback.GetResult(transport->Connect(callback.callback()));
1952 EXPECT_EQ(OK, rv); 1969 EXPECT_EQ(OK, rv);
1953 1970
1954 scoped_ptr<ClientSocketHandle> socket_handle(new ClientSocketHandle()); 1971 scoped_ptr<ClientSocketHandle> socket_handle(new ClientSocketHandle());
1955 socket_handle->SetSocket(transport.Pass()); 1972 socket_handle->SetSocket(std::move(transport));
1956 1973
1957 scoped_ptr<SSLClientSocket> sock(socket_factory_->CreateSSLClientSocket( 1974 scoped_ptr<SSLClientSocket> sock(socket_factory_->CreateSSLClientSocket(
1958 socket_handle.Pass(), spawned_test_server()->host_port_pair(), 1975 std::move(socket_handle), spawned_test_server()->host_port_pair(),
1959 SSLConfig(), context_)); 1976 SSLConfig(), context_));
1960 1977
1961 EXPECT_FALSE(sock->IsConnected()); 1978 EXPECT_FALSE(sock->IsConnected());
1962 rv = callback.GetResult(sock->Connect(callback.callback())); 1979 rv = callback.GetResult(sock->Connect(callback.callback()));
1963 EXPECT_EQ(OK, rv); 1980 EXPECT_EQ(OK, rv);
1964 } 1981 }
1965 1982
1966 // Verifies that SSLClientSocket::ExportKeyingMaterial return a success 1983 // Verifies that SSLClientSocket::ExportKeyingMaterial return a success
1967 // code and different keying label results in different keying material. 1984 // code and different keying label results in different keying material.
1968 TEST_F(SSLClientSocketTest, ExportKeyingMaterial) { 1985 TEST_F(SSLClientSocketTest, ExportKeyingMaterial) {
(...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after
2465 // Tests that IsConnectedAndIdle treats a socket as idle even if a Write hasn't 2482 // Tests that IsConnectedAndIdle treats a socket as idle even if a Write hasn't
2466 // been flushed completely out of SSLClientSocket's internal buffers. This is a 2483 // been flushed completely out of SSLClientSocket's internal buffers. This is a
2467 // regression test for https://crbug.com/466147. 2484 // regression test for https://crbug.com/466147.
2468 TEST_F(SSLClientSocketTest, ReusableAfterWrite) { 2485 TEST_F(SSLClientSocketTest, ReusableAfterWrite) {
2469 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions())); 2486 ASSERT_TRUE(StartTestServer(SpawnedTestServer::SSLOptions()));
2470 2487
2471 TestCompletionCallback callback; 2488 TestCompletionCallback callback;
2472 scoped_ptr<StreamSocket> real_transport( 2489 scoped_ptr<StreamSocket> real_transport(
2473 new TCPClientSocket(addr(), NULL, NetLog::Source())); 2490 new TCPClientSocket(addr(), NULL, NetLog::Source()));
2474 scoped_ptr<FakeBlockingStreamSocket> transport( 2491 scoped_ptr<FakeBlockingStreamSocket> transport(
2475 new FakeBlockingStreamSocket(real_transport.Pass())); 2492 new FakeBlockingStreamSocket(std::move(real_transport)));
2476 FakeBlockingStreamSocket* raw_transport = transport.get(); 2493 FakeBlockingStreamSocket* raw_transport = transport.get();
2477 ASSERT_EQ(OK, callback.GetResult(transport->Connect(callback.callback()))); 2494 ASSERT_EQ(OK, callback.GetResult(transport->Connect(callback.callback())));
2478 2495
2479 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( 2496 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
2480 transport.Pass(), spawned_test_server()->host_port_pair(), SSLConfig())); 2497 std::move(transport), spawned_test_server()->host_port_pair(),
2498 SSLConfig()));
2481 ASSERT_EQ(OK, callback.GetResult(sock->Connect(callback.callback()))); 2499 ASSERT_EQ(OK, callback.GetResult(sock->Connect(callback.callback())));
2482 2500
2483 // Block any application data from reaching the network. 2501 // Block any application data from reaching the network.
2484 raw_transport->BlockWrite(); 2502 raw_transport->BlockWrite();
2485 2503
2486 // Write a partial HTTP request. 2504 // Write a partial HTTP request.
2487 const char kRequestText[] = "GET / HTTP/1.0"; 2505 const char kRequestText[] = "GET / HTTP/1.0";
2488 const size_t kRequestLen = arraysize(kRequestText) - 1; 2506 const size_t kRequestLen = arraysize(kRequestText) - 1;
2489 scoped_refptr<IOBuffer> request_buffer(new IOBuffer(kRequestLen)); 2507 scoped_refptr<IOBuffer> request_buffer(new IOBuffer(kRequestLen));
2490 memcpy(request_buffer->data(), kRequestText, kRequestLen); 2508 memcpy(request_buffer->data(), kRequestText, kRequestLen);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2522 ASSERT_TRUE(sock_->GetSSLInfo(&ssl_info)); 2540 ASSERT_TRUE(sock_->GetSSLInfo(&ssl_info));
2523 EXPECT_EQ(SSLInfo::HANDSHAKE_RESUME, ssl_info.handshake_type); 2541 EXPECT_EQ(SSLInfo::HANDSHAKE_RESUME, ssl_info.handshake_type);
2524 sock_.reset(); 2542 sock_.reset();
2525 2543
2526 // Using a different HostPortPair uses a different session cache key. 2544 // Using a different HostPortPair uses a different session cache key.
2527 scoped_ptr<StreamSocket> transport( 2545 scoped_ptr<StreamSocket> transport(
2528 new TCPClientSocket(addr(), &log_, NetLog::Source())); 2546 new TCPClientSocket(addr(), &log_, NetLog::Source()));
2529 TestCompletionCallback callback; 2547 TestCompletionCallback callback;
2530 ASSERT_EQ(OK, callback.GetResult(transport->Connect(callback.callback()))); 2548 ASSERT_EQ(OK, callback.GetResult(transport->Connect(callback.callback())));
2531 scoped_ptr<SSLClientSocket> sock = CreateSSLClientSocket( 2549 scoped_ptr<SSLClientSocket> sock = CreateSSLClientSocket(
2532 transport.Pass(), HostPortPair("example.com", 443), ssl_config); 2550 std::move(transport), HostPortPair("example.com", 443), ssl_config);
2533 ASSERT_EQ(OK, callback.GetResult(sock->Connect(callback.callback()))); 2551 ASSERT_EQ(OK, callback.GetResult(sock->Connect(callback.callback())));
2534 ASSERT_TRUE(sock->GetSSLInfo(&ssl_info)); 2552 ASSERT_TRUE(sock->GetSSLInfo(&ssl_info));
2535 EXPECT_EQ(SSLInfo::HANDSHAKE_FULL, ssl_info.handshake_type); 2553 EXPECT_EQ(SSLInfo::HANDSHAKE_FULL, ssl_info.handshake_type);
2536 sock.reset(); 2554 sock.reset();
2537 2555
2538 SSLClientSocket::ClearSessionCache(); 2556 SSLClientSocket::ClearSessionCache();
2539 2557
2540 // After clearing the session cache, the next handshake doesn't resume. 2558 // After clearing the session cache, the next handshake doesn't resume.
2541 ASSERT_TRUE(CreateAndConnectSSLClientSocket(ssl_config, &rv)); 2559 ASSERT_TRUE(CreateAndConnectSSLClientSocket(ssl_config, &rv));
2542 ASSERT_EQ(OK, rv); 2560 ASSERT_EQ(OK, rv);
(...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after
3215 int rv; 3233 int rv;
3216 ASSERT_TRUE(CreateAndConnectSSLClientSocket(client_config, &rv)); 3234 ASSERT_TRUE(CreateAndConnectSSLClientSocket(client_config, &rv));
3217 EXPECT_EQ(OK, rv); 3235 EXPECT_EQ(OK, rv);
3218 3236
3219 std::string proto; 3237 std::string proto;
3220 EXPECT_EQ(SSLClientSocket::kNextProtoUnsupported, 3238 EXPECT_EQ(SSLClientSocket::kNextProtoUnsupported,
3221 sock_->GetNextProto(&proto)); 3239 sock_->GetNextProto(&proto));
3222 } 3240 }
3223 3241
3224 } // namespace net 3242 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/ssl_client_socket_pool.cc ('k') | net/socket/ssl_server_socket_openssl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698