ASP4
view release on metacpan or search on metacpan
lib/ASP4/Mock/RequestRec.pm view on Meta::CPAN
headers_out => { },
uri => $args{uri} || $ENV{REQUEST_URI},
args => $args{args} || $ENV{QUERY_STRING},
pnotes => { },
method => $args{method},
pool => ASP4::Mock::Pool->new(),
connection => ASP4::Mock::Connection->new(),
}, $class;
weaken($s->{connection});
$s->{err_headers_out} = $s->{headers_out};
$s->{filename} = $s->document_root . $s->uri;
return $s;
}# end new()
# Public read-write properties:
sub pnotes
{
my $s = shift;
my $name = shift;
@_ ? $s->{pnotes}->{$name} = shift : $s->{pnotes}->{$name};
}# end pnotes()
sub uri
{
my $s = shift;
@_ ? $s->{uri} = shift : $s->{uri};
}# end uri()
sub args
{
my $s = shift;
@_ ? $s->{args} = shift : $s->{args};
}# end args()
sub status {
my $s = shift;
@_ ? $s->{status} = +shift : $s->{status};
}# end status()
# Public read-only properties:
sub document_root { shift->{document_root} }
sub method { uc( shift->{method} ) }
sub pool { shift->{pool} }
sub connection { shift->{connection} }
sub headers_out { shift->{headers_out} }
sub headers_in { shift->{headers_in} }
sub err_headers_out { shift->{err_headers_out} }
sub buffer { shift->{buffer} } # Not documented:
# Public methods:
sub print { my ($s,$str) = @_; $s->{buffer} .= $str; }
sub content_type
{
my ($s, $type) = @_;
return $s->headers_out->{'content-type'} unless $type;
$s->headers_out->{'content-type'} = $type;
}# end content_type()
sub rflush { }
1;# return true:
=pod
=head1 NAME
ASP4::Mock::RequestRec - Mimic an Apache2::RequestRec object
=head1 DESCRIPTION
When an ASP4 request is executed outside of a mod_perl2 environment, it uses an
instance of C<ASP4::Mock::RequestRec> in place of the L<Apache2::RequestRec> it
would otherwise have.
=head1 PUBLIC PROPERTIES
=head2 pnotes( $name [, $value ] )
Sets or gets the value of a named "pnote" for the duration of the request.
Example:
$r->pnotes( foo => "foovalue" );
my $val = $r->pnotes( 'foo' );
=head2 args( [$new_args] )
Sets or gets the querystring for the request.
Example:
my $str = $r->args();
$r->args( 'foo=bar&baz=bux' );
=head2 uri( [$new_uri] )
Sets or gets the URI for the current request:
Example:
my $uri = $r->uri;
$r->uri( '/path/to/page.asp' );
=head2 document_root( )
Gets the document root for the server. This is the same as $config->web->www_root.
my $root = $r->document_root; # /var/www/mysite.com/htdocs
=head2 method( )
Gets the request method for the current request. Eg: C<GET> or C<POST>.
if( $r->method eq 'GET' ) {
# It's a "GET" request:
}
( run in 0.984 second using v1.01-cache-2.11-cpan-524268b4103 )