summaryrefslogtreecommitdiffstats
path: root/ppapi/tests/test_tcp_socket_private.cc
diff options
context:
space:
mode:
authorraymes@chromium.org <raymes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-22 19:09:35 +0000
committerraymes@chromium.org <raymes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-22 19:09:35 +0000
commite83e409b5f05357538dad425c2dd6263808eaeb4 (patch)
tree2ca5fb9dcdd0a34e65f5518bdb683bab1256582d /ppapi/tests/test_tcp_socket_private.cc
parente0ff4debd3eceb8cea3e42fb93f9a9bcd2550d19 (diff)
downloadchromium_src-e83e409b5f05357538dad425c2dd6263808eaeb4.zip
chromium_src-e83e409b5f05357538dad425c2dd6263808eaeb4.tar.gz
chromium_src-e83e409b5f05357538dad425c2dd6263808eaeb4.tar.bz2
Added a pepper test for SSLHandshake. This starts an SSL server which the test can connect to.
BUG=114626 TEST=Ran pepper TCP tests. Review URL: http://codereview.chromium.org/9791003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128266 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/tests/test_tcp_socket_private.cc')
-rw-r--r--ppapi/tests/test_tcp_socket_private.cc34
1 files changed, 32 insertions, 2 deletions
diff --git a/ppapi/tests/test_tcp_socket_private.cc b/ppapi/tests/test_tcp_socket_private.cc
index ee2d71f..6bffe49 100644
--- a/ppapi/tests/test_tcp_socket_private.cc
+++ b/ppapi/tests/test_tcp_socket_private.cc
@@ -40,12 +40,16 @@ bool TestTCPSocketPrivate::Init() {
if (!GetLocalHostPort(instance_->pp_instance(), &host_, &port_))
return false;
+ // Get the port for the SSL server.
+ ssl_port_ = instance_->ssl_server_port();
+
return true;
}
void TestTCPSocketPrivate::RunTests(const std::string& filter) {
RUN_TEST_FORCEASYNC_AND_NOT(Basic, filter);
RUN_TEST_FORCEASYNC_AND_NOT(ReadWrite, filter);
+ RUN_TEST_FORCEASYNC_AND_NOT(ReadWriteSSL, filter);
RUN_TEST_FORCEASYNC_AND_NOT(ConnectAddress, filter);
}
@@ -91,6 +95,34 @@ std::string TestTCPSocketPrivate::TestReadWrite() {
PASS();
}
+std::string TestTCPSocketPrivate::TestReadWriteSSL() {
+ pp::TCPSocketPrivate socket(instance_);
+ TestCompletionCallback cb(instance_->pp_instance(), force_async_);
+
+ int32_t rv = socket.Connect(host_.c_str(), ssl_port_, cb);
+ ASSERT_TRUE(!force_async_ || rv == PP_OK_COMPLETIONPENDING);
+ if (rv == PP_OK_COMPLETIONPENDING)
+ rv = cb.WaitForResult();
+ ASSERT_EQ(PP_OK, rv);
+
+ rv = socket.SSLHandshake(host_.c_str(), ssl_port_, cb);
+ ASSERT_TRUE(!force_async_ || rv == PP_OK_COMPLETIONPENDING);
+ if (rv == PP_OK_COMPLETIONPENDING)
+ rv = cb.WaitForResult();
+ ASSERT_EQ(PP_OK, rv);
+
+ ASSERT_EQ(PP_OK, WriteStringToSocket(&socket, "GET / HTTP/1.0\r\n\r\n"));
+
+ // Read up to the first \n and check that it looks like valid HTTP response.
+ std::string s;
+ ASSERT_EQ(PP_OK, ReadFirstLineFromSocket(&socket, &s));
+ ASSERT_TRUE(ValidateHttpResponse(s));
+
+ socket.Disconnect();
+
+ PASS();
+}
+
std::string TestTCPSocketPrivate::TestConnectAddress() {
PP_NetAddress_Private address;
@@ -128,8 +160,6 @@ std::string TestTCPSocketPrivate::TestConnectAddress() {
PASS();
}
-// TODO(viettrungluu): Try testing SSL somehow.
-
int32_t TestTCPSocketPrivate::ReadFirstLineFromSocket(
pp::TCPSocketPrivate* socket,
std::string* s) {