fileserver/lib/restbed-4.8/test/integration/source/request_suite.cpp

108 lines
2.7 KiB
C++

//System Includes
#include <map>
#include <string>
//Project Includes
#include <corvusoft/restbed/uri.hpp>
#include <corvusoft/restbed/byte.hpp>
#include <corvusoft/restbed/request.hpp>
//External Includes
#include <catch.hpp>
//System Namespaces
using std::string;
using std::multimap;
//Project Namespaces
using restbed::Uri;
using restbed::Bytes;
using restbed::Request;
//External Namespaces
TEST_CASE( "validate setters modify default values", "[request]" )
{
Bytes expectation = { 'a', 'b', 'c' };
Request request;
request.set_body( expectation );
REQUIRE( request.get_body( ) == expectation );
REQUIRE( request.has_query_parameter( "q" ) == false );
REQUIRE( request.has_path_parameter( "id" ) == false );
}
TEST_CASE( "validate URI constructor", "[request]" )
{
Request request( Uri( "https://localhost:1985/messages?a=1&b=2&c=9#1234" ) );
REQUIRE( request.get_port( ) == 1985 );
REQUIRE( request.get_protocol( ) == "HTTPS" );
REQUIRE( request.get_path( ) == "/messages" );
REQUIRE( request.get_host( ) == "localhost" );
multimap< string, string > parameters
{
{ "a", "1" },
{ "b", "2" },
{ "c", "9" }
};
REQUIRE( request.get_query_parameters( ) == parameters );
}
TEST_CASE( "validate HTTPS URI constructor", "[request]" )
{
Request request( Uri( "https://localhost/?abc=456&efg=123" ) );
REQUIRE( request.get_port( ) == 443 );
REQUIRE( request.get_protocol( ) == "HTTPS" );
REQUIRE( request.get_path( ) == "/" );
REQUIRE( request.get_host( ) == "localhost" );
multimap< string, string > parameters
{
{ "abc", "456" },
{ "efg", "123" }
};
REQUIRE( request.get_query_parameters( ) == parameters );
}
TEST_CASE( "validate HTTP URI constructor", "[request]" )
{
Request request( Uri( "http://localhost/?abc=456&efg=123" ) );
REQUIRE( request.get_port( ) == 80 );
REQUIRE( request.get_protocol( ) == "HTTP" );
REQUIRE( request.get_path( ) == "/" );
REQUIRE( request.get_host( ) == "localhost" );
multimap< string, string > parameters
{
{ "abc", "456" },
{ "efg", "123" }
};
REQUIRE( request.get_query_parameters( ) == parameters );
}
TEST_CASE( "validate URI constructor with no path", "[request]" )
{
Request request( Uri( "http://localhost?abc=456&efg=123" ) );
REQUIRE( request.get_port( ) == 80 );
REQUIRE( request.get_protocol( ) == "HTTP" );
REQUIRE( request.get_path( ) == "/" );
REQUIRE( request.get_host( ) == "localhost" );
multimap< string, string > parameters
{
{ "abc", "456" },
{ "efg", "123" }
};
REQUIRE( request.get_query_parameters( ) == parameters );
}