#!perl -w warn "loaded auth_checkpassword\n"; sub register_tests { my $self = shift; my ($vpopdir) = (getpwnam('vpopmail'))[7]; if ( ! $vpopdir ) { warn "skipping tests, vpopmail not installed\n"; return; }; if ( ! -d "$vpopdir/domains/example.com" ) { warn "skipping tests, no example users set up.\n"; return; }; $self->register_test("test_auth_checkpassword", 3); } my @u_list = qw ( good bad none ); my %u_data = ( good => [ 'postmaster@example.com', OK, 'Good Strong Passphrase' ], bad => [ 'bad@example.com', DENY, 'not_bad_pass' ], none => [ 'none@example.com', DECLINED, '' ], ); sub test_auth_checkpassword { my $self = shift; my ($tran, $ret, $note, $u, $r, $p, $a ); $tran = $self->qp->transaction; for $u ( @u_list ) { ( $a,$r,$p ) = @{$u_data{$u}}; ($ret, $note) = $self->auth_checkpassword($tran,'LOGIN',$a,$p); defined $note or $note='No-Message'; is ($ret, $r, $note); ($ret, $note) = $self->auth_checkpassword($tran,'PLAIN',$a,$p); defined $note or $note='No-Message'; is ($ret, $r, $note); } }