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 14namespace pp { 15class UDPSocket; 16} 17 18class 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