Apache2-API

 view release on metacpan or  search on metacpan

t/lib/Test/Apache2/API/Request.pm  view on Meta::CPAN


sub no_cache { return( shift->_test({ method => 'no_cache', expect => 0, type => 'boolean' }) ); }

sub notes { return( shift->_test({ method => 'notes', expect => 'APR::Table', type => 'isa' }) ); }

# NOTE: special processing
# foo=bar&lang=ja_JP
sub param { return( shift->_test({ method => 'param', expect => 'bar', args => ['foo'] }) ); }

# NOTE: special processing
# foo=bar&lang=ja_JP
sub params { return( shift->_test({ method => 'params', expect => sub
{
    my $ref = shift( @_ );
    return( ref( $ref ) eq 'HASH' && $ref->{foo} eq 'bar' );
} }) ); }

# path

sub path_info { return( shift->_test({ method => 'path_info', expect => '/request/path_info' }) ); }

sub payload { return( shift->_test({ method => 'payload', expect => sub
{
    my $ref = shift( @_ );
    my $opts = shift( @_ );
    if( eval( 'require Data::Dump;' ) )
    {
        $opts->{log}->( "\$ref is (", ( $ref // 'undef' ), ") -> ", Data::Dump::dump( $ref ) );
    }
    return( ref( $ref ) eq 'HASH' && ( exists( $ref->{client_id} ) && $ref->{client_id} eq '37c58138-e259-44aa-9eee-baf3cbecca75' ) );
} }) ); }

# NOTE: en-GB,fr-FR;q=0.8,fr;q=0.6,ja;q=0.4,en;q=0.2 -> en-GB
sub preferred_language { return( shift->_test({ method => 'preferred_language', expect => 'en-GB', args => [[qw(fr-FR ja-JP en-GB en)]] }) ); }

sub protocol { return( shift->_test({ method => 'protocol', expect => 'HTTP/1.1' }) ); }

# NOTE: special processing
sub query { return( shift->_test({ method => 'query', expect => sub
{
    my $ref = shift( @_ );
    my $opts = shift( @_ );
    if( eval( 'require Data::Dump;' ) )
    {
        $opts->{log}->( "\$ref is: ", Data::Dump::dump( $ref ) );
    }
    return(
        ( exists( $ref->{foo} ) && $ref->{foo} == 1 ) && 
        ( exists( $ref->{bar} ) && $ref->{bar} == 3 ) && 
        ( exists( $ref->{lang} ) && $ref->{lang} eq 'ja_JP' )
    );
} }) ); }

# NOTE: special processing
sub query_string { return( shift->_test({ method => 'query_string', expect => 'foo=bar&lang=ja-JP&q=%E6%9C%80%E9%AB%98%E3%81%A0%EF%BC%81' }) ); }

sub referer { return( shift->_test({ method => 'referer', expect => 'https://example.org/some/where.html' }) ); }

sub remote_addr { return( shift->_test({ method => 'remote_addr', expect => 'APR::SockAddr', type => 'isa' }) ); }

sub request_time { return( shift->_test({ method => 'request_time', expect => 'DateTime::Lite', type => 'isa' }) ); }

# requires
# satisfies
# script_filename
# script_name
# script_uri
# script_url

# Apache2::ServerUtil->server
sub server { return( shift->_test({ method => 'server', expect => 'Apache2::ServerRec', type => 'isa' }) ); }

# server_addr
# server_admin
# server_hostname
# server_name
# server_port
# server_protocol
# server_signature
# server_software
# server_version
# set_basic_credentials
# set_handlers
# slurp_filename

sub socket { return( shift->_test({ method => 'socket', expect => 'APR::Socket', type => 'isa' }) ); }

# status
# status_line
# str2datetime
# str2time
# subnet_of

sub subprocess_env { return( shift->_test({ method => 'subprocess_env', expect => 'APR::Table', type => 'isa' }) ); }

sub the_request { return( shift->_test({ method => 'the_request', expect => 'GET /tests/request/the_request HTTP/1.1' }) ); }

# time2datetime

# 2021-11-1T167:12:10+0900
sub time2str { return( shift->_test({ method => 'time2str', expect => 'Mon, 01 Nov 2021 08:12:10 GMT', args => [1635754330] }) ); }

sub type { return( shift->_test({ method => 'type', expect => 'text/plain' }) ); }

# unparsed_uri
# uploads

sub uri { return( shift->_test({ method => 'uri', expect => 'URI', type => 'isa' }) ); }

# url_decode
# url_encode
# user

sub user_agent { return( shift->_test({ method => 'user_agent', expect => 'Test-Apache2-API/v0.1.0' }) ); }

sub _target { return( shift->api->request ); }

1;
# NOTE: POD
# Use this to generate the tests list:
# egrep -E '^sub ' ./t/lib/Test/Apache2/API/Request.pm | perl -lnE 'my $m = [split(/\s+/, $_)]->[1]; say "=head2 $m\n"'



( run in 0.598 second using v1.01-cache-2.11-cpan-524268b4103 )