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

Unified Diff: net/socket/ssl_client_socket_unittest.cc

Issue 353713005: Implements new, more robust design for communicating between SSLConnectJobs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated tests for client sockets to confirm use of completion callback and switched messenger to us… Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: net/socket/ssl_client_socket_unittest.cc
diff --git a/net/socket/ssl_client_socket_unittest.cc b/net/socket/ssl_client_socket_unittest.cc
index 2639870e81f36f4fefef5ad4626ced9bc629da13..ca8deed39c2479667a5471f565ca27e7acc7bd21 100644
--- a/net/socket/ssl_client_socket_unittest.cc
+++ b/net/socket/ssl_client_socket_unittest.cc
@@ -592,12 +592,15 @@ class SSLClientSocketTest : public PlatformTest {
SSLClientSocketTest()
: socket_factory_(ClientSocketFactory::GetDefaultFactory()),
cert_verifier_(new MockCertVerifier),
- transport_security_state_(new TransportSecurityState) {
+ transport_security_state_(new TransportSecurityState),
+ ran_completion_callback_(false) {
cert_verifier_->set_default_result(OK);
context_.cert_verifier = cert_verifier_.get();
context_.transport_security_state = transport_security_state_.get();
}
+ void RecordCompletionCallbackRun() { ran_completion_callback_ = true; }
wtc 2014/07/30 21:56:57 In ssl_client_socket_openssl_unittest.cc, this met
+
protected:
// Sets up a TCP connection to a HTTPS server. To actually do the SSL
// handshake, follow up with call to CreateAndConnectSSLClientSocket() below.
@@ -660,6 +663,7 @@ class SSLClientSocketTest : public PlatformTest {
SSLClientSocketContext context_;
scoped_ptr<SSLClientSocket> sock_;
CapturingNetLog log_;
+ bool ran_completion_callback_;
wtc 2014/07/30 21:56:58 Same here: this member should be renamed "ran_hand
private:
scoped_ptr<StreamSocket> transport_;
@@ -943,8 +947,6 @@ TEST_F(SSLClientSocketTest, ConnectMismatched) {
scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
transport.Pass(), test_server.host_port_pair(), kDefaultSSLConfig));
wtc 2014/07/30 21:56:58 Why don't you call sock->SetHandshakeCompletionCal
- EXPECT_FALSE(sock->IsConnected());
wtc 2014/07/30 21:56:57 Why did you delete this EXPECT_FALSE?
-
rv = sock->Connect(callback.callback());
CapturingNetLog::CapturedEntryList entries;
@@ -1167,6 +1169,12 @@ TEST_F(SSLClientSocketTest, Read_WithSynchronousError) {
test_server.host_port_pair(),
ssl_config));
+#if defined(USE_OPENSSL)
+ sock->SetHandshakeCompletionCallback(
+ base::Bind(&SSLClientSocketTest::RecordCompletionCallbackRun,
+ base::Unretained(this)));
+#endif
+
rv = callback.GetResult(sock->Connect(callback.callback()));
EXPECT_EQ(OK, rv);
EXPECT_TRUE(sock->IsConnected());
@@ -1197,6 +1205,7 @@ TEST_F(SSLClientSocketTest, Read_WithSynchronousError) {
#else
// SSLClientSocketOpenSSL treats any errors as a simple EOF.
EXPECT_EQ(0, rv);
+ EXPECT_TRUE(ran_completion_callback_);
#endif
}
@@ -1236,6 +1245,12 @@ TEST_F(SSLClientSocketTest, Write_WithSynchronousError) {
test_server.host_port_pair(),
ssl_config));
+#if defined(USE_OPENSSL)
+ sock->SetHandshakeCompletionCallback(
+ base::Bind(&SSLClientSocketTest::RecordCompletionCallbackRun,
+ base::Unretained(this)));
+#endif
+
rv = callback.GetResult(sock->Connect(callback.callback()));
EXPECT_EQ(OK, rv);
EXPECT_TRUE(sock->IsConnected());
@@ -1278,6 +1293,7 @@ TEST_F(SSLClientSocketTest, Write_WithSynchronousError) {
#else
// SSLClientSocketOpenSSL treats any errors as a simple EOF.
EXPECT_EQ(0, rv);
+ EXPECT_TRUE(ran_completion_callback_);
#endif
}
@@ -1502,6 +1518,12 @@ TEST_F(SSLClientSocketTest, Read_WithWriteError) {
test_server.host_port_pair(),
ssl_config));
+#if defined(USE_OPENSSL)
+ sock->SetHandshakeCompletionCallback(
+ base::Bind(&SSLClientSocketTest::RecordCompletionCallbackRun,
+ base::Unretained(this)));
+#endif
+
rv = callback.GetResult(sock->Connect(callback.callback()));
EXPECT_EQ(OK, rv);
EXPECT_TRUE(sock->IsConnected());
@@ -1560,6 +1582,7 @@ TEST_F(SSLClientSocketTest, Read_WithWriteError) {
#else
// OpenSSL treats the reset as a generic protocol error.
EXPECT_EQ(ERR_SSL_PROTOCOL_ERROR, rv);
+ EXPECT_TRUE(ran_completion_callback_);
#endif
// Release the read. Some bytes should go through.
@@ -1834,10 +1857,19 @@ TEST_F(SSLClientSocketTest, PrematureApplicationData) {
scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
transport.Pass(), test_server.host_port_pair(), kDefaultSSLConfig));
+#if defined(USE_OPENSSL)
+ sock->SetHandshakeCompletionCallback(
+ base::Bind(&SSLClientSocketTest::RecordCompletionCallbackRun,
+ base::Unretained(this)));
+#endif
+
rv = sock->Connect(callback.callback());
if (rv == ERR_IO_PENDING)
rv = callback.WaitForResult();
EXPECT_EQ(ERR_SSL_PROTOCOL_ERROR, rv);
+#if defined(USE_OPENSSL)
+ EXPECT_TRUE(ran_completion_callback_);
+#endif
}
TEST_F(SSLClientSocketTest, CipherSuiteDisables) {

Powered by Google App Engine
This is Rietveld 408576698