gozer       2004/08/12 21:35:09

  Modified:    t/directive .cvsignore
  Added:       t/response/TestDirective cmdparms.pm
  Log:
  Add a stand-alone test for Apache::CmdParms directives.
  
  Revision  Changes    Path
  1.1                  modperl-2.0/t/response/TestDirective/cmdparms.pm
  
  Index: cmdparms.pm
  ===================================================================
  package TestDirective::cmdparms;
  
  use strict;
  use warnings FATAL => 'all';
  
  use Apache::CmdParms ();
  use Apache::Module ();
  use Apache::Test;
  use Apache::TestUtil;
  
  use Apache::Const -compile => qw(
      ACCESS_CONF
      M_GET
      M_POST
      M_PUT
      M_DELETE
      OK
      OR_AUTHCFG
      OR_FILEINFO
      OR_INDEXES
      OR_LIMIT
      OR_OPTIONS
      RSRC_CONF
  );
  
  use constant KEY => "TestCmdParms";
  
  our @APACHE_MODULE_COMMANDS = (
      { 
          name        => +KEY,
          cmd_data    => 'cmd_data',
          errmsg      => 'errmsg',
      },
  );
    
  my @methods = qw(
  cmd
  context
  directive
  info
  limited
  override
  path
  pool
  server
  temp_pool
  );
    
  sub TestCmdParms {
      my ($self, $parms, $args) = @_;
      my $srv_cfg = $self->get_config($parms->server);
      foreach my $method (@methods) {
          $srv_cfg->{$args}{$method} = $parms->$method();
      }
  }
  
  sub get_config {
      my ($self, $s) = (shift, shift);
      Apache::Module->get_config($self, $s, @_);
  }
  
  ### response handler ###
  sub handler : method {
      my ($self, $r) = @_;
      
      my $srv_cfg = $self->get_config($r->server);
      
      plan $r, tests => 4 + ( 8 * keys(%$srv_cfg) );
      
      foreach my $cfg (values %$srv_cfg) {
          ok t_cmp (ref($cfg->{cmd}), 'Apache::Command', 'cmd');
          ok t_cmp (ref($cfg->{context}), 'Apache::ConfVector', 'context');
          ok t_cmp (ref($cfg->{directive}), 'Apache::Directive', 'directive');
          ok t_cmp (ref($cfg->{pool}), 'APR::Pool', 'pool');
          ok t_cmp (ref($cfg->{temp_pool}), 'APR::Pool', 'temp_pool');
          ok t_cmp (ref($cfg->{server}), 'Apache::ServerRec', 'server');
          ok t_cmp ($cfg->{limited}, -1, 'limited');
          ok t_cmp ($cfg->{info}, 'cmd_data', 'cmd_data');
      }    
      
      my $vhost = $srv_cfg->{Vhost};
      
      $override = Apache::RSRC_CONF   |
                  Apache::OR_INDEXES  |
                  Apache::OR_FILEINFO |
                  Apache::OR_OPTIONS;
      
      ok t_cmp ($vhost->{override}, $override, 'override');
      ok t_cmp ($vhost->{path}, undef, 'path');
      
      my $loc = $srv_cfg->{Location};
      
      $override = Apache::ACCESS_CONF |
                  Apache::OR_INDEXES  |
                  Apache::OR_AUTHCFG  |
                  Apache::OR_FILEINFO |
                  Apache::OR_OPTIONS  |
                  Apache::OR_LIMIT;
      
      ok t_cmp ($loc->{override}, $override, 'override');
      ok t_cmp ($loc->{path}, '/TestDirective__cmdparms', 'path');
  
      return Apache::OK;
  }
  
  1;
  __END__
  
  # APACHE_TEST_CONFIG_ORDER 950
  
  <Base>
  PerlLoadModule TestDirective::cmdparms
  TestCmdParms "Vhost"
  </Base>
  
  TestCmdParms "Location"
  
  
  
  1.5       +1 -0      modperl-2.0/t/directive/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/t/directive/.cvsignore,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- .cvsignore        4 Dec 2002 03:04:23 -0000       1.4
  +++ .cvsignore        13 Aug 2004 04:35:09 -0000      1.5
  @@ -1,3 +1,4 @@
  +cmdparms.t
   env.t
   perlloadmodule.t
   pod.t
  
  
  

Reply via email to