Allow zebra search for Accelerated Reading Point in field 526$d
[koha.git] / t / db_dependent / Auth_with_ldap.t
1 #!/bin/perl
2 #
3
4 use strict;
5 use warnings;
6
7 use Test::More;
8 use vars qw(%cases $dbh $config $context $ldap);
9
10 BEGIN {
11         %cases = (
12                 # users from t/LDAP/example3.ldif
13                 sss => 'password1',
14                 jts => 'password1',
15                 rch => 'password2',
16                 jmf => 'password3',
17         );
18         plan tests => 8 + scalar(keys %cases);
19         use_ok('C4::Context');
20         use_ok('C4::Auth_with_ldap', qw(checkpw_ldap));
21 }
22
23 sub do_checkpw_ldap (;$$) { 
24         my ($user,$pass) = (shift,shift);
25         diag "($user,$pass)";
26         my $ret;
27         return ($ret = checkpw_ldap($dbh,$user,$pass), sprintf("(%s,%s) returns '%s'",$user,$pass,$ret));
28 }
29
30 ok($context= C4::Context->new(),        "Getting new C4::Context object");
31 ok($dbh    = C4::Context->dbh(),        "Getting dbh from C4::Context");
32 ok($dbh    = $context->dbh(),           "Getting dbh from \$context object");
33
34 $ldap = $ENV{KOHA_USELDAPSERVER};
35 if(defined($ldap)) {
36     diag "Overriding KOHA_CONF <useldapserver> with \$ENV{KOHA_USELDAPSERVER} = $ldap";
37 } else {
38     diag 'Note: You can use $ENV{KOHA_USELDAPSERVER} to override KOHA_CONF <useldapserver> for this test';
39     $ldap = C4::Context->config('useldapserver');
40 }
41 ok(defined($ldap), "Checking if \$ENV{KOHA_USELDAPSERVER} or <useldapserver> is defined");
42
43 SKIP: {
44     $ldap or skip("LDAP is disabled.", scalar(keys %cases) + 2);
45     diag("The basis of Authentication is that we don't auth everybody.");
46     diag("Let's make sure we reject on bad calls.");
47     my $ret;
48     ok(!($ret = checkpw_ldap($dbh)),       "should reject (  no  arguments) returns '$ret'");
49     ok(!($ret = checkpw_ldap($dbh,'','')), "should reject (empty arguments) returns '$ret'");
50     print "\n";
51     diag("Now let's check " . scalar(keys %cases) . " test cases: ");
52     foreach (sort keys %cases) {
53         ok do_checkpw_ldap($_, $cases{$_});
54     }
55 }
56 1;