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 PPAPI_TESTS_TEST_UDP_SOCKET_H_ 6 #define PPAPI_TESTS_TEST_UDP_SOCKET_H_ 7 8 #include <string> 9 10 #include "ppapi/c/pp_stdint.h" 11 #include "ppapi/cpp/net_address.h" 12 #include "ppapi/tests/test_case.h" 13 14 namespace pp { 15 class UDPSocket; 16 } 17 18 class TestUDPSocket: public TestCase { 19 public: 20 explicit TestUDPSocket(TestingInstance* instance); 21 22 // TestCase implementation. 23 virtual bool Init(); 24 virtual void RunTests(const std::string& filter); 25 26 private: 27 std::string GetLocalAddress(pp::NetAddress* address); 28 std::string SetBroadcastOptions(pp::UDPSocket* socket); 29 std::string BindUDPSocket(pp::UDPSocket* socket, 30 const pp::NetAddress& address); 31 std::string LookupPortAndBindUDPSocket(pp::UDPSocket* socket, 32 pp::NetAddress* address); 33 std::string ReadSocket(pp::UDPSocket* socket, 34 pp::NetAddress* address, 35 size_t size, 36 std::string* message); 37 std::string PassMessage(pp::UDPSocket* target, 38 pp::UDPSocket* source, 39 const pp::NetAddress& target_address, 40 const std::string& message, 41 pp::NetAddress* recvfrom_address); 42 43 std::string TestReadWrite(); 44 std::string TestBroadcast(); 45 std::string TestSetOption(); 46 47 pp::NetAddress address_; 48 }; 49 50 #endif // PPAPI_TESTS_TEST_UDP_SOCKET_H_ 51