45 lines
1.2 KiB
Plaintext
45 lines
1.2 KiB
Plaintext
|
#!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);
|
||
|
}
|
||
|
}
|