Lines 38-47
my $anonymous_bind = 1;
Link Here
|
38 |
my $desired_authentication_result = 'success'; |
38 |
my $desired_authentication_result = 'success'; |
39 |
my $desired_connection_result = 'error'; |
39 |
my $desired_connection_result = 'error'; |
40 |
my $desired_admin_bind_result = 'error'; |
40 |
my $desired_admin_bind_result = 'error'; |
41 |
my $desired_compare_result = 'error'; |
|
|
42 |
my $desired_search_result = 'error'; |
41 |
my $desired_search_result = 'error'; |
43 |
my $desired_count_result = 1; |
42 |
my $desired_count_result = 1; |
44 |
my $desired_bind_result = 'error'; |
43 |
my $desired_bind_result = 'error'; |
|
|
44 |
my $remaining_entry = 1; |
45 |
my $ret; |
45 |
my $ret; |
46 |
|
46 |
|
47 |
# Mock the context module |
47 |
# Mock the context module |
Lines 158-168
subtest "checkpw_ldap tests" => sub {
Link Here
|
158 |
$anonymous_bind = 1; |
158 |
$anonymous_bind = 1; |
159 |
$desired_admin_bind_result = 'success'; |
159 |
$desired_admin_bind_result = 'success'; |
160 |
$desired_bind_result = 'error'; |
160 |
$desired_bind_result = 'error'; |
|
|
161 |
$desired_search_result = 'success'; |
162 |
$desired_count_result = 1; |
161 |
reload_ldap_module(); |
163 |
reload_ldap_module(); |
162 |
|
164 |
|
163 |
warning_like { $ret = C4::Auth_with_ldap::checkpw_ldap( |
165 |
warning_like { $ret = C4::Auth_with_ldap::checkpw_ldap( |
164 |
$dbh, 'hola', password => 'hey' ) } |
166 |
$dbh, 'hola', password => 'hey' ) } |
165 |
qr/LDAP Auth rejected : invalid password for user 'hola'. LDAP error #1: error_name/, |
167 |
qr/LDAP Auth rejected : invalid password for user 'hola'./, |
166 |
"checkpw_ldap prints correct warning if LDAP bind fails"; |
168 |
"checkpw_ldap prints correct warning if LDAP bind fails"; |
167 |
is ( $ret, -1, "checkpw_ldap returns -1 if bind fails (Bug 8148)"); |
169 |
is ( $ret, -1, "checkpw_ldap returns -1 if bind fails (Bug 8148)"); |
168 |
|
170 |
|
Lines 185-191
subtest "checkpw_ldap tests" => sub {
Link Here
|
185 |
|
187 |
|
186 |
warning_like { $ret = C4::Auth_with_ldap::checkpw_ldap( |
188 |
warning_like { $ret = C4::Auth_with_ldap::checkpw_ldap( |
187 |
$dbh, 'hola', password => 'hey' ) } |
189 |
$dbh, 'hola', password => 'hey' ) } |
188 |
qr/LDAP Auth rejected : invalid password for user 'hola'. LDAP error #1: error_name/, |
190 |
qr/LDAP Auth rejected : invalid password for user 'hola'./, |
189 |
"checkpw_ldap prints correct warning if LDAP bind fails"; |
191 |
"checkpw_ldap prints correct warning if LDAP bind fails"; |
190 |
is ( $ret, -1, "checkpw_ldap returns -1 if bind fails (Bug 8148)"); |
192 |
is ( $ret, -1, "checkpw_ldap returns -1 if bind fails (Bug 8148)"); |
191 |
|
193 |
|
Lines 194-200
subtest "checkpw_ldap tests" => sub {
Link Here
|
194 |
|
196 |
|
195 |
subtest "search_method tests" => sub { |
197 |
subtest "search_method tests" => sub { |
196 |
|
198 |
|
197 |
plan tests => 5; |
199 |
plan tests => 3; |
198 |
|
200 |
|
199 |
my $ldap = mock_net_ldap(); |
201 |
my $ldap = mock_net_ldap(); |
200 |
|
202 |
|
Lines 211-224
subtest "search_method tests" => sub {
Link Here
|
211 |
like( $@, qr/LDAP search failed to return object : 1/, |
213 |
like( $@, qr/LDAP search failed to return object : 1/, |
212 |
"search_method prints correct warning when db->search returns error code"); |
214 |
"search_method prints correct warning when db->search returns error code"); |
213 |
|
215 |
|
214 |
$desired_search_result = 'success'; |
|
|
215 |
$desired_count_result = 2; |
216 |
reload_ldap_module(); |
217 |
warning_like { $ret = C4::Auth_with_ldap::search_method( $ldap, '123') } |
218 |
qr/^LDAP Auth rejected \: \(uid\=123\) gets 2 hits/, |
219 |
"search_method prints correct warning when hits count is not 1"; |
220 |
is( $ret, 0, "search_method returns 0 when hits count is not 1" ); |
221 |
|
222 |
}; |
216 |
}; |
223 |
|
217 |
|
224 |
# Function that mocks the call to C4::Context->config(param) |
218 |
# Function that mocks the call to C4::Context->config(param) |
Lines 279-284
sub mock_net_ldap {
Link Here
|
279 |
|
273 |
|
280 |
$mocked_ldap->mock( 'search', sub { |
274 |
$mocked_ldap->mock( 'search', sub { |
281 |
|
275 |
|
|
|
276 |
$remaining_entry = 1; |
277 |
|
282 |
return mock_net_ldap_search( |
278 |
return mock_net_ldap_search( |
283 |
( $desired_count_result ) # count |
279 |
( $desired_count_result ) # count |
284 |
? $desired_count_result |
280 |
? $desired_count_result |
Lines 313-319
sub mock_net_ldap_search {
Link Here
|
313 |
$mocked_search->mock( 'error', sub { return $error; } ); |
309 |
$mocked_search->mock( 'error', sub { return $error; } ); |
314 |
$mocked_search->mock( 'error_name', sub { return $error_name; } ); |
310 |
$mocked_search->mock( 'error_name', sub { return $error_name; } ); |
315 |
$mocked_search->mock( 'error_text', sub { return $error_text; } ); |
311 |
$mocked_search->mock( 'error_text', sub { return $error_text; } ); |
316 |
$mocked_search->mock( 'shift_entry', sub { return $shift_entry; } ); |
312 |
$mocked_search->mock( 'shift_entry', sub { |
|
|
313 |
if ($remaining_entry) { |
314 |
$remaining_entry--; |
315 |
return $shift_entry; |
316 |
} |
317 |
return ''; |
318 |
}); |
317 |
|
319 |
|
318 |
return $mocked_search; |
320 |
return $mocked_search; |
319 |
} |
321 |
} |
320 |
- |
|
|