⛏️ index : haiku.git

/*
 * Copyright 2021 Haiku, inc.
 * Distributed under the terms of the MIT License.
 */
#ifndef HTTP_TEST_H
#define HTTP_TEST_H


#include <HttpSession.h>
#include <TestCase.h>
#include <TestSuite.h>
#include <tools/cppunit/ThreadedTestCase.h>

#include "HttpDebugLogger.h"
#include "TestServer.h"

using BPrivate::Network::BHttpSession;


class HttpProtocolTest : public BTestCase
{
public:
								HttpProtocolTest();

			void				HttpFieldsTest();
			void				HttpMethodTest();
			void				HttpRequestTest();
			void				HttpTimeTest();

	static	void				AddTests(BTestSuite& suite);
};


class HttpIntegrationTest : public BThreadedTestCase
{
public:
								HttpIntegrationTest(TestServerMode mode);

	virtual	void				setUp() override;
	virtual	void				tearDown() override;

			void				HostAndNetworkFailTest();
			void				GetTest();
			void				GetWithBufferTest();
			void				HeadTest();
			void				NoContentTest();
			void				AutoRedirectTest();
			void				BasicAuthTest();
			void				StopOnErrorTest();
			void				RequestCancelTest();
			void				PostTest();

	static	void				AddTests(BTestSuite& suite);

private:
			TestServer			fTestServer;
			BHttpSession		fSession;
			HttpDebugLogger*	fLogger;
			BMessenger			fLoggerMessenger;
};

#endif