stas 2003/04/01 18:44:15
Added: t/filter both_str_req_add.t
t/filter/TestFilter both_str_req_add.pm
Removed: t/filter both_str_rec_add.t
t/filter/TestFilter both_str_rec_add.pm
Log:
s/rec/req/ since it's a shortcut for request
Revision Changes Path
1.1 modperl-2.0/t/filter/both_str_req_add.t
Index: both_str_req_add.t
===================================================================
use strict;
use warnings FATAL => 'all';
use Apache::Test;
use Apache::TestRequest;
use Apache::TestUtil;
plan tests => 1;
my $data = join ' ', 'A'..'Z', 0..9;
my $expected = lc $data; # that's what the input filter does
$expected =~ s/\s+//g; # that's what the output filter does
my $location = '/TestFilter::both_str_req_add';
my $response = POST_BODY $location, content => $data;
ok t_cmp($expected, $response, "lc input and reverse output filters");
1.1 modperl-2.0/t/filter/TestFilter/both_str_req_add.pm
Index: both_str_req_add.pm
===================================================================
package TestFilter::both_str_req_add;
# insert an input filter which lowers the case of the data
# insert an output filter which strips spaces
use strict;
use warnings FATAL => 'all';
use Apache::Filter ();
use Apache::Const -compile => qw(OK M_POST);
sub header_parser {
my $r = shift;
# test adding by coderef
$r->add_input_filter(\&in_filter);
# test adding by sub's name
$r->add_output_filter("out_filter");
return Apache::DECLINED;
}
sub in_filter {
my $filter = shift;
while ($filter->read(my $buffer, 1024)) {
$filter->print(lc $buffer);
}
Apache::OK;
}
sub out_filter {
my $filter = shift;
while ($filter->read(my $buffer, 1024)) {
$buffer =~ s/\s+//g;
$filter->print($buffer);
}
Apache::OK;
}
sub handler {
my $r = shift;
$r->content_type('text/plain');
if ($r->method_number == Apache::M_POST) {
$r->print(ModPerl::Test::read_post($r));
}
return Apache::OK;
}
1;
__DATA__
<NoAutoConfig>
PerlModule TestFilter::both_str_req_add
<Location /TestFilter::both_str_req_add>
SetHandler modperl
PerlHeaderParserHandler TestFilter::both_str_req_add::header_parser
PerlResponseHandler TestFilter::both_str_req_add
</Location>
</NoAutoConfig>