Home | History | Annotate | Download | only in tests
      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