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