Apache2-API
view release on metacpan or search on metacpan
t/04.status.t view on Meta::CPAN
};
use strict;
use warnings;
BEGIN
{
# use_ok( 'Apache2::API::Status', 'all' );
use ok( 'Apache2::API::Status', qw( :all ) );
};
my $s = Apache2::API::Status->new;
isa_ok( $s => 'Apache2::API::Status' );
# for m in `egrep -E '^sub ([a-z]\w+)' ./lib/Apache2/API/Status.pm| awk '{ print $2 }'`; do echo "can_ok( \$s => '$m' );"; done
# or
# egrep -E '^sub ' ./lib/Apache2/API/Status.pm | perl -lnE 'my $m = [split(/\s+/, $_)]->[1]; say "can_ok( \$s, ''$m'' );"'
# perl -lnE '/^sub (?!init|[A-Z]|_)/ and say "can_ok( \$s, \''", [split(/\s+/, $_)]->[1], "\'' );"' ./lib/Apache2/API/Status.pm
can_ok( $s, 'convert_short_lang_to_long' );
can_ok( $s, 'is_info' );
can_ok( $s, 'is_success' );
can_ok( $s, 'is_redirect' );
can_ok( $s, 'is_error' );
can_ok( $s, 'is_client_error' );
can_ok( $s, 'is_server_error' );
can_ok( $s, 'status_message' );
can_ok( $s, 'supported_languages' );
subtest 'constants' => sub
{
my $constants = [
'HTTP_CONTINUE' => 100,
'HTTP_SWITCHING_PROTOCOLS' => 101,
'HTTP_PROCESSING' => 102,
'HTTP_EARLY_HINTS' => 103,
'HTTP_OK' => 200,
'HTTP_CREATED' => 201,
'HTTP_ACCEPTED' => 202,
'HTTP_NON_AUTHORITATIVE' => 203,
'HTTP_NO_CONTENT' => 204,
'HTTP_RESET_CONTENT' => 205,
'HTTP_PARTIAL_CONTENT' => 206,
'HTTP_MULTI_STATUS' => 207,
'HTTP_ALREADY_REPORTED' => 208,
'HTTP_IM_USED' => 226,
'HTTP_MULTIPLE_CHOICES' => 300,
'HTTP_MOVED_PERMANENTLY' => 301,
'HTTP_MOVED_TEMPORARILY' => 302,
'HTTP_SEE_OTHER' => 303,
'HTTP_NOT_MODIFIED' => 304,
'HTTP_USE_PROXY' => 305,
'HTTP_TEMPORARY_REDIRECT' => 307,
'HTTP_PERMANENT_REDIRECT' => 308,
'HTTP_BAD_REQUEST' => 400,
'HTTP_UNAUTHORIZED' => 401,
'HTTP_PAYMENT_REQUIRED' => 402,
'HTTP_FORBIDDEN' => 403,
'HTTP_NOT_FOUND' => 404,
'HTTP_METHOD_NOT_ALLOWED' => 405,
'HTTP_NOT_ACCEPTABLE' => 406,
'HTTP_PROXY_AUTHENTICATION_REQUIRED' => 407,
'HTTP_REQUEST_TIME_OUT' => 408,
'HTTP_CONFLICT' => 409,
'HTTP_GONE' => 410,
'HTTP_LENGTH_REQUIRED' => 411,
'HTTP_PRECONDITION_FAILED' => 412,
'HTTP_REQUEST_ENTITY_TOO_LARGE' => 413,
'HTTP_REQUEST_URI_TOO_LARGE' => 414,
'HTTP_UNSUPPORTED_MEDIA_TYPE' => 415,
'HTTP_RANGE_NOT_SATISFIABLE' => 416,
'HTTP_EXPECTATION_FAILED' => 417,
'HTTP_I_AM_A_TEA_POT' => 418,
'HTTP_MISDIRECTED_REQUEST' => 421,
'HTTP_UNPROCESSABLE_ENTITY' => 422,
'HTTP_LOCKED' => 423,
'HTTP_FAILED_DEPENDENCY' => 424,
'HTTP_TOO_EARLY' => 425,
'HTTP_UPGRADE_REQUIRED' => 426,
'HTTP_PRECONDITION_REQUIRED' => 428,
'HTTP_TOO_MANY_REQUESTS' => 429,
'HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE' => 431,
'HTTP_CONNECTION_CLOSED_WITHOUT_RESPONSE' => 444,
'HTTP_UNAVAILABLE_FOR_LEGAL_REASONS' => 451,
'HTTP_CLIENT_CLOSED_REQUEST' => 499,
'HTTP_INTERNAL_SERVER_ERROR' => 500,
'HTTP_NOT_IMPLEMENTED' => 501,
'HTTP_BAD_GATEWAY' => 502,
'HTTP_SERVICE_UNAVAILABLE' => 503,
'HTTP_GATEWAY_TIME_OUT' => 504,
'HTTP_VERSION_NOT_SUPPORTED' => 505,
'HTTP_VARIANT_ALSO_VARIES' => 506,
'HTTP_INSUFFICIENT_STORAGE' => 507,
'HTTP_LOOP_DETECTED' => 508,
'HTTP_BANDWIDTH_LIMIT_EXCEEDED' => 509,
'HTTP_NOT_EXTENDED' => 510,
'HTTP_NETWORK_AUTHENTICATION_REQUIRED' => 511,
'HTTP_NETWORK_CONNECT_TIMEOUT_ERROR' => 599,
];
for( my $i = 0; $i < scalar( @$constants ); $i += 2 )
{
my $const = $constants->[$i];
my $value = $constants->[$i + 1];
no strict 'refs';
ok( defined( &$const ), "constant $const defined" );
if( defined( &$const ) )
{
is( &$const, $value, "constant $const value" );
}
else
{
fail( "constant $const value" );
}
}
};
is( HTTP_OK, 200 );
ok( $s->is_info( HTTP_CONTINUE ), 'is_info' );
ok( $s->is_success( HTTP_ACCEPTED ), 'is_success' );
( run in 0.331 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )