You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by st...@apache.org on 2003/01/29 02:25:46 UTC
cvs commit: modperl-2.0/t/hooks/TestHooks push_handlers.pm
stas 2003/01/28 17:25:46
Added: t/hooks push_handlers.t
t/hooks/TestHooks push_handlers.pm
Log:
- add a test to exercise push_handlers in different ways
- prepare for supporting anon handlers
Revision Changes Path
1.1 modperl-2.0/t/hooks/push_handlers.t
Index: push_handlers.t
===================================================================
use strict;
use warnings FATAL => 'all';
use Apache::Test;
use Apache::TestUtil;
use Apache::TestRequest;
plan tests => 1;
my @refs = qw(coderef full_coderef coderef1 coderef2 coderef3);
my @anon = qw(anonymous anonymous1 coderef4 anonymous3);
my @strings = @refs;
# XXX: anon-handlers unsupported yet
# push @strings, @anon
my $location = "/TestHooks::push_handlers";
my $expected = join "\n", @strings, '';
my $received = GET_BODY $location;
ok t_cmp($expected, $received, "push_handlers ways");
1.1 modperl-2.0/t/hooks/TestHooks/push_handlers.pm
Index: push_handlers.pm
===================================================================
package TestHooks::push_handlers;
# test various ways to push handlers
use strict;
use warnings FATAL => 'all';
use Apache::RequestRec ();
use Apache::RequestIO ();
use Apache::Const -compile => qw(OK DECLINED DONE);
sub handler {
my $r = shift;
$r->handler("modperl");
$r->push_handlers(PerlResponseHandler => \&start);
$r->push_handlers(PerlResponseHandler => \&coderef);
$r->push_handlers(PerlResponseHandler =>
\&TestHooks::push_handlers::full_coderef);
$r->push_handlers(PerlResponseHandler =>
[\&coderef1, \&coderef2, \&coderef3]);
# XXX: anon-handlers unsupported yet
# $r->push_handlers(PerlResponseHandler =>
# sub { return say(shift, "anonymous") });
# $r->push_handlers(PerlResponseHandler =>
# [sub { return say(shift, "anonymous1") },
# \&coderef4,
# sub { return say(shift, "anonymous3") },
# ]);
$r->push_handlers(PerlResponseHandler => \&end);
return Apache::DECLINED;
}
sub start { shift->content_type('text/plain'); return Apache::OK }
sub end { return Apache::DONE }
sub say { shift->print(shift,"\n"); return Apache::OK }
sub coderef { return say(shift, "coderef") }
sub coderef1 { return say(shift, "coderef1") }
sub coderef2 { return say(shift, "coderef2") }
sub coderef3 { return say(shift, "coderef3") }
sub coderef4 { return say(shift, "coderef4") }
sub full_coderef { return say(shift, "full_coderef") }
1;
__DATA__
<NoAutoConfig>
<Location /TestHooks::push_handlers>
SetHandler modperl
PerlHeaderParserHandler TestHooks::push_handlers
</Location>
</NoAutoConfig>