test_tcp_server_socket_private_disallowed.cc 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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
  3. // found in the LICENSE file.
  4. #include "ppapi/tests/test_tcp_server_socket_private_disallowed.h"
  5. #include <cstddef>
  6. #include "ppapi/cpp/module.h"
  7. #include "ppapi/cpp/private/net_address_private.h"
  8. #include "ppapi/tests/test_utils.h"
  9. #include "ppapi/tests/testing_instance.h"
  10. REGISTER_TEST_CASE(TCPServerSocketPrivateDisallowed);
  11. TestTCPServerSocketPrivateDisallowed::TestTCPServerSocketPrivateDisallowed(
  12. TestingInstance* instance)
  13. : TestCase(instance),
  14. core_interface_(NULL),
  15. tcp_server_socket_private_interface_(NULL) {
  16. }
  17. bool TestTCPServerSocketPrivateDisallowed::Init() {
  18. core_interface_ = static_cast<const PPB_Core*>(
  19. pp::Module::Get()->GetBrowserInterface(PPB_CORE_INTERFACE));
  20. if (!core_interface_)
  21. instance_->AppendError("PPB_Core interface not available");
  22. tcp_server_socket_private_interface_ =
  23. static_cast<const PPB_TCPServerSocket_Private*>(
  24. pp::Module::Get()->GetBrowserInterface(
  25. PPB_TCPSERVERSOCKET_PRIVATE_INTERFACE));
  26. if (!tcp_server_socket_private_interface_) {
  27. instance_->AppendError(
  28. "PPB_TCPServerSocket_Private interface not available");
  29. }
  30. bool net_address_private_is_available = pp::NetAddressPrivate::IsAvailable();
  31. if (!net_address_private_is_available)
  32. instance_->AppendError("PPB_NetAddress_Private interface not available");
  33. return core_interface_ &&
  34. tcp_server_socket_private_interface_ &&
  35. net_address_private_is_available &&
  36. CheckTestingInterface();
  37. }
  38. void TestTCPServerSocketPrivateDisallowed::RunTests(const std::string& filter) {
  39. RUN_CALLBACK_TEST(TestTCPServerSocketPrivateDisallowed, Listen, filter);
  40. }
  41. std::string TestTCPServerSocketPrivateDisallowed::TestListen() {
  42. PP_Resource socket =
  43. tcp_server_socket_private_interface_->Create(instance_->pp_instance());
  44. ASSERT_TRUE(socket != 0);
  45. ASSERT_TRUE(tcp_server_socket_private_interface_->IsTCPServerSocket(socket));
  46. PP_NetAddress_Private base_address, address;
  47. pp::NetAddressPrivate::GetAnyAddress(false, &base_address);
  48. ASSERT_TRUE(pp::NetAddressPrivate::ReplacePort(
  49. base_address, 0, &address));
  50. TestCompletionCallback callback(instance_->pp_instance());
  51. callback.WaitForResult(tcp_server_socket_private_interface_->Listen(
  52. socket,
  53. &address,
  54. 1,
  55. callback.GetCallback().pp_completion_callback()));
  56. CHECK_CALLBACK_BEHAVIOR(callback);
  57. ASSERT_NE(PP_OK, callback.result());
  58. PASS();
  59. }