blob: f493e24b3f8153f438d9b516e9fe03a83367f76e [file] [log] [blame]
# please insert nothing before this line: -*- mode: cperl; cperl-indent-level: 4; cperl-continued-statement-offset: 4; indent-tabs-mode: nil -*-
package TestHooks::cleanup;
# test various ways to assign cleanup handlers
use strict;
use warnings FATAL => 'all';
use Apache::Test;
use Apache::TestUtil;
use File::Spec::Functions qw(catfile);
use Apache2::RequestRec ();
use Apache2::RequestIO ();
use Apache2::RequestUtil ();
use Apache2::Const -compile => qw(OK DECLINED);
sub get_file {
catfile Apache::Test::vars("documentroot"), "hooks", "cleanup";
}
sub handler {
my $r = shift;
$r->content_type('text/plain');
$r->print('ok');
$r->pnotes(items => ["cleanup"," ok"]);
$r->push_handlers(PerlCleanupHandler => \&cleanup2);
return Apache2::Const::OK;
}
sub cleanup1 {
my $r = shift;
my $items = $r->pnotes('items');
die "no items" unless $items;
my $item = $items ? $items->[0] : '';
#warn "cleanup CALLED\n";
t_write_file(get_file(), $item);
return Apache2::Const::OK;
}
sub cleanup2 {
my $r = shift;
my $items = $r->pnotes('items');
my $item = $items ? $items->[1] : '';
#warn "cleanup2 CALLED\n";
t_append_file(get_file(), $item);
return Apache2::Const::OK;
}
1;
__DATA__
<NoAutoConfig>
<Location /TestHooks__cleanup>
SetHandler modperl
PerlCleanupHandler TestHooks::cleanup::cleanup1
PerlResponseHandler TestHooks::cleanup
</Location>
</NoAutoConfig>