108 lines
2.7 KiB
C++
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 );
|
||
|
}
|