1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
/*
restinio
*/
#include <catch2/catch.hpp>
#include <restinio/helpers/http_field_parsers/cache-control.hpp>
TEST_CASE( "Cache-Control Field", "[cache-control]" )
{
using namespace restinio::http_field_parsers;
using namespace std::string_literals;
{
const auto result = cache_control_value_t::try_parse(
"" );
REQUIRE( !result );
}
{
const auto result = cache_control_value_t::try_parse(
"," );
REQUIRE( !result );
}
{
const auto result = cache_control_value_t::try_parse(
",, , , , " );
REQUIRE( !result );
}
{
const auto result = cache_control_value_t::try_parse(
"max-age=5" );
REQUIRE( result );
cache_control_value_t::directive_container_t expected_directives{
{ "max-age"s, "5"s },
};
REQUIRE( expected_directives == result->directives );
}
{
const auto result = cache_control_value_t::try_parse(
"max-age=5, no-transform, only-if-cached, min-fresh=20" );
REQUIRE( result );
cache_control_value_t::directive_container_t expected_directives{
{ "max-age"s, "5"s },
{ "no-transform"s, restinio::nullopt },
{ "only-if-cached"s, restinio::nullopt },
{ "min-fresh"s, "20"s }
};
REQUIRE( expected_directives == result->directives );
}
{
const auto result = cache_control_value_t::try_parse(
", , , , max-age=5, ,,, no-transform, only-if-cached, min-fresh=20,,,, " );
REQUIRE( result );
cache_control_value_t::directive_container_t expected_directives{
{ "max-age"s, "5"s },
{ "no-transform"s, restinio::nullopt },
{ "only-if-cached"s, restinio::nullopt },
{ "min-fresh"s, "20"s }
};
REQUIRE( expected_directives == result->directives );
}
}
|