|
Lines 45-54
my $anonymous_bind = 1;
Link Here
|
| 45 |
my $desired_authentication_result = 'success'; |
45 |
my $desired_authentication_result = 'success'; |
| 46 |
my $desired_connection_result = 'error'; |
46 |
my $desired_connection_result = 'error'; |
| 47 |
my $desired_admin_bind_result = 'error'; |
47 |
my $desired_admin_bind_result = 'error'; |
| 48 |
my $desired_compare_result = 'error'; |
|
|
| 49 |
my $desired_search_result = 'error'; |
48 |
my $desired_search_result = 'error'; |
| 50 |
my $desired_count_result = 1; |
49 |
my $desired_count_result = 1; |
| 51 |
my $desired_bind_result = 'error'; |
50 |
my $desired_bind_result = 'error'; |
|
|
51 |
my $remaining_entry = 1; |
| 52 |
my $ret; |
52 |
my $ret; |
| 53 |
|
53 |
|
| 54 |
# Mock the context module |
54 |
# Mock the context module |
|
Lines 244-256
qr/LDAP bind failed as ldapuser cn=Manager,dc=metavore,dc=com: LDAP error #1: er
Link Here
|
| 244 |
$anonymous_bind = 1; |
244 |
$anonymous_bind = 1; |
| 245 |
$desired_admin_bind_result = 'success'; |
245 |
$desired_admin_bind_result = 'success'; |
| 246 |
$desired_bind_result = 'error'; |
246 |
$desired_bind_result = 'error'; |
|
|
247 |
$desired_search_result = 'success'; |
| 248 |
$desired_count_result = 1; |
| 247 |
reload_ldap_module(); |
249 |
reload_ldap_module(); |
| 248 |
|
250 |
|
| 249 |
warning_like { |
251 |
warning_like { |
| 250 |
$ret = C4::Auth_with_ldap::checkpw_ldap( $dbh, 'hola', |
252 |
$ret = C4::Auth_with_ldap::checkpw_ldap( $dbh, 'hola', |
| 251 |
password => 'hey' ); |
253 |
password => 'hey' ); |
| 252 |
} |
254 |
} |
| 253 |
qr/LDAP Auth rejected : invalid password for user 'hola'. LDAP error #1: error_name/, |
255 |
qr/LDAP Auth rejected : invalid password for user 'hola'./, |
| 254 |
'checkpw_ldap prints correct warning if LDAP bind fails'; |
256 |
'checkpw_ldap prints correct warning if LDAP bind fails'; |
| 255 |
is( $ret, -1, 'checkpw_ldap returns -1 if bind fails (Bug 8148)' ); |
257 |
is( $ret, -1, 'checkpw_ldap returns -1 if bind fails (Bug 8148)' ); |
| 256 |
|
258 |
|
|
Lines 277-283
qr/LDAP bind failed as ldapuser cn=Manager,dc=metavore,dc=com: LDAP error #1: er
Link Here
|
| 277 |
$ret = C4::Auth_with_ldap::checkpw_ldap( $dbh, 'hola', |
279 |
$ret = C4::Auth_with_ldap::checkpw_ldap( $dbh, 'hola', |
| 278 |
password => 'hey' ); |
280 |
password => 'hey' ); |
| 279 |
} |
281 |
} |
| 280 |
qr/LDAP Auth rejected : invalid password for user 'hola'. LDAP error #1: error_name/, |
282 |
qr/LDAP Auth rejected : invalid password for user 'hola'./, |
| 281 |
'checkpw_ldap prints correct warning if LDAP bind fails'; |
283 |
'checkpw_ldap prints correct warning if LDAP bind fails'; |
| 282 |
is( $ret, -1, 'checkpw_ldap returns -1 if bind fails (Bug 8148)' ); |
284 |
is( $ret, -1, 'checkpw_ldap returns -1 if bind fails (Bug 8148)' ); |
| 283 |
|
285 |
|
|
Lines 286-292
qr/LDAP Auth rejected : invalid password for user 'hola'. LDAP error #1: error_n
Link Here
|
| 286 |
|
288 |
|
| 287 |
subtest 'search_method tests' => sub { |
289 |
subtest 'search_method tests' => sub { |
| 288 |
|
290 |
|
| 289 |
plan tests => 5; |
291 |
plan tests => 3; |
| 290 |
|
292 |
|
| 291 |
my $ldap = mock_net_ldap(); |
293 |
my $ldap = mock_net_ldap(); |
| 292 |
|
294 |
|
|
Lines 306-320
subtest 'search_method tests' => sub {
Link Here
|
| 306 |
qr/LDAP search failed to return object : 1/, |
308 |
qr/LDAP search failed to return object : 1/, |
| 307 |
'search_method prints correct warning when db->search returns error code' |
309 |
'search_method prints correct warning when db->search returns error code' |
| 308 |
); |
310 |
); |
| 309 |
|
|
|
| 310 |
$desired_search_result = 'success'; |
| 311 |
$desired_count_result = 2; |
| 312 |
reload_ldap_module(); |
| 313 |
warning_like { $ret = C4::Auth_with_ldap::search_method( $ldap, '123' ) } |
| 314 |
qr/^LDAP Auth rejected \: \(uid\=123\) gets 2 hits/, |
| 315 |
'search_method prints correct warning when hits count is not 1'; |
| 316 |
is( $ret, 0, 'search_method returns 0 when hits count is not 1' ); |
| 317 |
|
| 318 |
}; |
311 |
}; |
| 319 |
|
312 |
|
| 320 |
# Function that mocks the call to C4::Context->config(param) |
313 |
# Function that mocks the call to C4::Context->config(param) |
|
Lines 389-394
sub mock_net_ldap {
Link Here
|
| 389 |
'search', |
382 |
'search', |
| 390 |
sub { |
383 |
sub { |
| 391 |
|
384 |
|
|
|
385 |
$remaining_entry = 1 |
| 386 |
|
| 392 |
return mock_net_ldap_search( |
387 |
return mock_net_ldap_search( |
| 393 |
{ |
388 |
{ |
| 394 |
count => ($desired_count_result) |
389 |
count => ($desired_count_result) |
|
Lines 431-437
sub mock_net_ldap_search {
Link Here
|
| 431 |
$mocked_search->mock( 'error', sub { return $error; } ); |
426 |
$mocked_search->mock( 'error', sub { return $error; } ); |
| 432 |
$mocked_search->mock( 'error_name', sub { return $error_name; } ); |
427 |
$mocked_search->mock( 'error_name', sub { return $error_name; } ); |
| 433 |
$mocked_search->mock( 'error_text', sub { return $error_text; } ); |
428 |
$mocked_search->mock( 'error_text', sub { return $error_text; } ); |
| 434 |
$mocked_search->mock( 'shift_entry', sub { return $shift_entry; } ); |
429 |
$mocked_search->mock( 'shift_entry', sub { |
|
|
430 |
if ($remaining_entry) { |
| 431 |
$remaining_entry--; |
| 432 |
return $shift_entry; |
| 433 |
} |
| 434 |
return ''; |
| 435 |
}); |
| 435 |
|
436 |
|
| 436 |
return $mocked_search; |
437 |
return $mocked_search; |
| 437 |
} |
438 |
} |
| 438 |
- |
|
|