use strict; use warnings FATAL => 'all'; # # To run tests for mod_authnz_ldap: # # a) run an LDAP server with root DN of dc=example,dc=com on localhost port 8389 # b) populate the directory with the LDIF from scripts/httpd.ldif # c) configure & run the test suite passing "--defines LDAP" to ./t/TEST # use Apache::Test; use Apache::TestRequest; use Apache::TestUtil; use Apache::TestConfig; my $defs = Apache::Test->vars('defines'); my $ldap_defined = $defs =~ /LDAP/; # URL -> username, password, expected-status my @cases = ( ['/modules/ldap/simple/' => '', '', 401], ['/modules/ldap/simple/' => 'alpha', 'badpass', 401], ['/modules/ldap/simple/' => 'alpha', 'Alpha', 200], ['/modules/ldap/simple/' => 'gamma', 'Gamma', 200], ['/modules/ldap/group/' => 'gamma', 'Gamma', 401], ['/modules/ldap/group/' => 'delta', 'Delta', 200], ['/modules/ldap/refer/' => 'alpha', 'Alpha', 401], ['/modules/ldap/refer/' => 'beta', 'Beta', 200], ); plan tests => scalar @cases, need need_module('authnz_ldap'), { "LDAP testing not configured" => $ldap_defined }; foreach my $t (@cases) { my $url = $t->[0]; my $username = $t->[1]; my $password = $t->[2]; my $response; my $creds; if ($username) { $response = GET $url, username => $username, password => $password; $creds = "$username/$password"; } else { $response = GET $url; $creds = "no credentials"; } ok t_cmp($response->code, $t->[3], "test for $url with $creds"); }