stas 2004/05/26 19:09:28
Modified: t/response/TestAPR util.pm Log: - crypt is not supported on 3 platforms - add tests for md5 and sha1 Revision Changes Path 1.9 +30 -7 modperl-2.0/t/response/TestAPR/util.pm Index: util.pm =================================================================== RCS file: /home/cvs/modperl-2.0/t/response/TestAPR/util.pm,v retrieving revision 1.8 retrieving revision 1.9 diff -u -u -r1.8 -r1.9 --- util.pm 22 May 2004 21:47:32 -0000 1.8 +++ util.pm 27 May 2004 02:09:28 -0000 1.9 @@ -1,5 +1,7 @@ package TestAPR::util; +# test APR::Util + use strict; use warnings FATAL => 'all'; @@ -10,21 +12,42 @@ use Apache::Const -compile => 'OK'; +use constant CRYPT_WORKS => $^O !~ /^(MSWin32|beos|NetWare)$/; + +my $clear = "this is some text"; +# to get the hash values used: +# htpasswd -nb[sm] user "this is some text" +my %hashes = ( + crypt => 'pHM3JfnL6isho', + md5 => '$apr1$Kld6H/..$o5OPPPWslI3zB20S54u9s1', + sha1 => '{SHA}A5NpTRa4TethLkfOYlK9NfDYbAY=', +); + sub handler { my $r = shift; - plan $r, tests => 2; + plan $r, tests => 4; + + # password_validate + { + ok ! APR::Util::password_validate("one", "two"); + + while (my($mode, $hash) = each %hashes) { + t_debug($mode); + if ($mode eq 'crypt' && !CRYPT_WORKS) { + t_debug("crypt is not supported on $^O"); + ok 1; # don't make noise + } + else { + ok APR::Util::password_validate($clear, $hash); + } + } + } #this function seems unstable on certain platforms # my $blen = 10; # my $bytes = APR::generate_random_bytes($blen); # ok length($bytes) == $blen; - - ok ! APR::Util::password_validate("one", "two"); - - my $clear = "pass1"; - my $hash = "1fWDc9QWYCWrQ"; - ok APR::Util::password_validate($clear, $hash); Apache::OK; }