1/* 2 * Copyright 2021 Haiku, inc. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef HTTP_TEST_H 6#define HTTP_TEST_H 7 8 9#include <HttpSession.h> 10#include <TestCase.h> 11#include <TestSuite.h> 12#include <tools/cppunit/ThreadedTestCase.h> 13 14#include "HttpDebugLogger.h" 15#include "TestServer.h" 16 17using BPrivate::Network::BHttpSession; 18 19 20class HttpProtocolTest : public BTestCase 21{ 22public: 23 HttpProtocolTest(); 24 25 void HttpFieldsTest(); 26 void HttpMethodTest(); 27 void HttpRequestTest(); 28 void HttpTimeTest(); 29 30 static void AddTests(BTestSuite& suite); 31}; 32 33 34class HttpIntegrationTest : public BThreadedTestCase 35{ 36public: 37 HttpIntegrationTest(TestServerMode mode); 38 39 virtual void setUp() override; 40 virtual void tearDown() override; 41 42 void HostAndNetworkFailTest(); 43 void GetTest(); 44 void GetWithBufferTest(); 45 void HeadTest(); 46 void NoContentTest(); 47 void AutoRedirectTest(); 48 void BasicAuthTest(); 49 void StopOnErrorTest(); 50 void RequestCancelTest(); 51 void PostTest(); 52 53 static void AddTests(BTestSuite& suite); 54 55private: 56 TestServer fTestServer; 57 BHttpSession fSession; 58 HttpDebugLogger* fLogger; 59 BMessenger fLoggerMessenger; 60}; 61 62#endif 63