dougm       01/04/19 14:28:04

  Added:       t/filter input_msg.t
               t/filter/TestFilter input_msg.pm
  Log:
  add test for InputFilterMessage handler
  
  Revision  Changes    Path
  1.1                  modperl-2.0/t/filter/input_msg.t
  
  Index: input_msg.t
  ===================================================================
  use Apache::TestRequest ();
  use Apache::TestConfig ();
  
  my $module = 'TestFilter::input_msg';
  
  local $Apache::TestRequest::Module = $module;
  $Apache::TestRequest::Module ||= $module; #-w
  
  my $config = Apache::TestConfig->thaw;
  my $hostport = Apache::TestRequest::hostport($config);
  print "connecting to $hostport\n";
  
  print $config->http_raw_get("/input_filter.html");
  
  
  
  1.1                  modperl-2.0/t/filter/TestFilter/input_msg.pm
  
  Index: input_msg.pm
  ===================================================================
  package TestFilter::input_msg;
  
  use strict;
  use warnings FATAL => 'all';
  
  use base qw(Apache::Filter);
  
  use Test;
  use Apache::Test ();
  use APR::Brigade ();
  use APR::Bucket ();
  
  #XXX
  @Apache::InputFilter::ISA = qw(Apache::OutputFilter);
  
  my $from_url = '/input_filter.html';
  my $to_url = '/TestFilter::input_msg::response';
  
  sub handler : InputFilterMessage {
      my($filter, $bb, $mode) = @_;
  
      if ($bb->empty) {
          my $rv = $filter->f->next->get_brigade($bb, $mode);
  
          if ($rv != APR::SUCCESS) {
              return $rv;
          }
      }
  
      for (my $bucket = $bb->first; $bucket; $bucket = $bb->next($bucket)) {
          my $data;
          my $status = $bucket->read($data);
  
          $bucket->remove;
  
          if ($data and $data =~ s,GET $from_url,GET $to_url,) {
              $bb->insert_tail(APR::Bucket->new($data));
          }
          else {
              $bb->insert_tail($bucket);
          }
      }
  
      Apache::OK;
  }
  
  sub response {
      my $r = shift;
  
      $r->content_type('text/plain');
  
      $r->puts("1..1\nok 1\n");
  
      Apache::OK;
  }
  
  1;
  __DATA__
  <VirtualHost TestFilter::input_msg>
  
    PerlInputFilterHandler TestFilter::input_msg
  
    <Location /TestFilter::input_msg::response>
       SetHandler modperl
       PerlResponseHandler TestFilter::input_msg::response
    </Location>
  
  </VirtualHost>
  
  
  

Reply via email to