diff options
author | raymes@chromium.org <raymes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-22 19:09:35 +0000 |
---|---|---|
committer | raymes@chromium.org <raymes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-22 19:09:35 +0000 |
commit | e83e409b5f05357538dad425c2dd6263808eaeb4 (patch) | |
tree | 2ca5fb9dcdd0a34e65f5518bdb683bab1256582d /ppapi/tests/test_tcp_socket_private.cc | |
parent | e0ff4debd3eceb8cea3e42fb93f9a9bcd2550d19 (diff) | |
download | chromium_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.cc | 34 |
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) { |