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