1// Copyright 2013 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 5#ifndef PAPPI_TESTS_TEST_TCP_SOCKET_H_ 6#define PAPPI_TESTS_TEST_TCP_SOCKET_H_ 7 8#include <string> 9 10#include "ppapi/c/pp_stdint.h" 11#include "ppapi/c/ppb_tcp_socket.h" 12#include "ppapi/cpp/net_address.h" 13#include "ppapi/tests/test_case.h" 14 15namespace pp { 16class TCPSocket; 17} 18 19class TestTCPSocket: public TestCase { 20 public: 21 explicit TestTCPSocket(TestingInstance* instance); 22 23 // TestCase implementation. 24 virtual bool Init(); 25 virtual void RunTests(const std::string& filter); 26 27 private: 28 std::string TestConnect(); 29 std::string TestReadWrite(); 30 std::string TestSetOption(); 31 std::string TestListen(); 32 std::string TestBacklog(); 33 std::string TestInterface_1_0(); 34 35 std::string ReadFirstLineFromSocket(pp::TCPSocket* socket, std::string* s); 36 std::string ReadFirstLineFromSocket_1_0(PP_Resource socket, 37 std::string* s); 38 std::string ReadFromSocket(pp::TCPSocket* socket, 39 char* buffer, 40 size_t num_bytes); 41 std::string WriteToSocket(pp::TCPSocket* socket, const std::string& s); 42 std::string WriteToSocket_1_0(PP_Resource socket, const std::string& s); 43 44 std::string GetAddressToBind(pp::NetAddress* address); 45 std::string StartListen(pp::TCPSocket* socket, int32_t backlog); 46 47 pp::NetAddress addr_; 48 49 const PPB_TCPSocket_1_0* socket_interface_1_0_; 50}; 51 52#endif // PAPPI_TESTS_TEST_TCP_SOCKET_H_ 53