17d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 27d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 37d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// found in the LICENSE file. 47d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 57d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#ifndef PPAPI_TESTS_TEST_HOST_RESOLVER_H_ 67d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#define PPAPI_TESTS_TEST_HOST_RESOLVER_H_ 77d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 87d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include <string> 97d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "ppapi/c/ppb_host_resolver.h" 117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "ppapi/tests/test_case.h" 127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)namespace pp { 14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass HostResolver; 15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass NetAddress; 16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass TCPSocket; 177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} // namespace pp 187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)class TestHostResolver : public TestCase { 207d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) public: 217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) explicit TestHostResolver(TestingInstance* instance); 227d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 237d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // TestCase implementation. 247d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual bool Init(); 257d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual void RunTests(const std::string& filter); 267d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 277d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) private: 28eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch std::string SyncConnect(pp::TCPSocket* socket, 29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const pp::NetAddress& address); 30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch std::string SyncRead(pp::TCPSocket* socket, 317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) char* buffer, 327d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) int32_t num_bytes, 337d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) int32_t* bytes_read); 34eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch std::string SyncWrite(pp::TCPSocket* socket, 357d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) const char* buffer, 367d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) int32_t num_bytes, 377d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) int32_t* bytes_written); 38eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch std::string CheckHTTPResponse(pp::TCPSocket* socket, 397d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) const std::string& request, 407d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) const std::string& response); 41eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch std::string SyncResolve(pp::HostResolver* host_resolver, 427d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) const std::string& host, 437d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) uint16_t port, 44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const PP_HostResolver_Hint& hint); 45eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch std::string ParameterizedTestResolve(const PP_HostResolver_Hint& hint); 467d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 477d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) std::string TestEmpty(); 487d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) std::string TestResolve(); 497d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) std::string TestResolveIPv4(); 507d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 517d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) std::string host_; 527d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) uint16_t port_; 537d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}; 547d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 557d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#endif // PPAPI_TESTS_TEST_HOST_RESOLVER_H_ 56