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>
  
  
  
  
  
  
  

Reply via email to