You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.7 KiB
46 lines
1.7 KiB
#!/usr/bin/perl |
|
|
|
use strict; |
|
use warnings; |
|
use utf8; |
|
|
|
use LDV::LDAP; |
|
use File::Slurp; |
|
use Data::Dumper; |
|
use Test::More tests => 16; |
|
|
|
my $hash = read_file('conf/ldv.conf'); |
|
my $config = eval "$hash"; |
|
SKIP: { |
|
skip "Can't load config", 16 unless (ref($config) eq 'HASH'); |
|
|
|
my $ldap = LDV::LDAP->new($config->{ldap}); |
|
isa_ok($ldap, "LDV::LDAP", "LDV::LDAP->new"); |
|
can_ok($ldap, qw(create delete get update)); |
|
|
|
is($ldap->get("test20"), undef, "get non-existing user"); |
|
is($ldap->create("test20"), undef, "creating user"); |
|
|
|
my $attrs = {uid => 'test20', cn => 'just', sn => 'created'}; |
|
is_deeply($ldap->get("test20"), $attrs, "getting data of newly created user"); |
|
|
|
$attrs = {uid => 'test20', cn => 'Полиграф', sn => 'Шариков'}; |
|
is($ldap->update("test20", $attrs), undef, "updating user data"); |
|
is($ldap->update("test20", {mail => 'abigvalg@example.com'}), undef, "updating user data"); |
|
$attrs->{mail} = 'abigvalg@example.com'; |
|
is_deeply($ldap->get("test20"), $attrs, "getting data of updated user"); |
|
|
|
my $pass = '{SSHA}K/LOxZB1fnNtQuRc1mApdoL7CGR2Akn/'; # 'test' |
|
is($ldap->update("test20", {userPassword => $pass}), undef, "updating user password"); |
|
is($ldap->auth("test20", "test"), 1, "check auth success"); |
|
is($ldap->auth("test20", "test1"), undef, "check auth falure (wrong pass)"); |
|
is($ldap->auth("test20", undef), undef, "check auth falure (empty pass)"); |
|
|
|
is($ldap->chpass("test20", "test2"), undef, "change password"); |
|
is($ldap->auth("test20", "test2"), 1, "check auth success (new pass)"); |
|
is($ldap->auth("test20", "test"), undef, "check auth falure (old pass)"); |
|
|
|
is($ldap->delete("test20"), undef, "deleting user"); |
|
}; |
|
|
|
exit 0;
|
|
|