| Index: ppapi/tests/test_tcp_socket_private_trusted.cc
|
| diff --git a/ppapi/tests/test_tcp_socket_private_trusted.cc b/ppapi/tests/test_tcp_socket_private_trusted.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..debb3ce0d87253dbc3e178c0d360b3ccc5cb9394
|
| --- /dev/null
|
| +++ b/ppapi/tests/test_tcp_socket_private_trusted.cc
|
| @@ -0,0 +1,65 @@
|
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "ppapi/tests/test_tcp_socket_private_trusted.h"
|
| +
|
| +#include "ppapi/cpp/private/tcp_socket_private.h"
|
| +#include "ppapi/cpp/private/x509_certificate_private.h"
|
| +#include "ppapi/tests/testing_instance.h"
|
| +#include "ppapi/tests/test_utils.h"
|
| +
|
| +REGISTER_TEST_CASE(TCPSocketPrivateTrusted);
|
| +
|
| +TestTCPSocketPrivateTrusted::TestTCPSocketPrivateTrusted(
|
| + TestingInstance* instance)
|
| + : TestCase(instance) {
|
| +}
|
| +
|
| +bool TestTCPSocketPrivateTrusted::Init() {
|
| + if (!pp::TCPSocketPrivate::IsAvailable())
|
| + return false;
|
| +
|
| + // We need something to connect to, so we connect to the HTTP server whence we
|
| + // came. Grab the host and port.
|
| + if (!EnsureRunningOverHTTP())
|
| + return false;
|
| +
|
| + 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 TestTCPSocketPrivateTrusted::RunTests(const std::string& filter) {
|
| + RUN_TEST_FORCEASYNC_AND_NOT(GetServerCertificate, filter);
|
| +}
|
| +
|
| +std::string TestTCPSocketPrivateTrusted::TestGetServerCertificate() {
|
| + 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);
|
| +
|
| + const pp::X509CertificatePrivate& cert = socket.GetServerCertificate();
|
| + ASSERT_EQ(
|
| + cert.GetField(PP_X509CERTIFICATE_PRIVATE_ISSUER_COMMON_NAME).AsString(),
|
| + "Test CA");
|
| + ASSERT_EQ(
|
| + cert.GetField(PP_X509CERTIFICATE_PRIVATE_SUBJECT_COMMON_NAME).AsString(),
|
| + "127.0.0.1");
|
| + PASS();
|
| +}
|
|
|