7 use Catalyst::Authentication::Store::LDAP::Backend;
11 my $server = LDAPTest::spawn_server();
13 # the tests currently don't require a real Catalyst app instance
16 my $stringy_session_value;
17 subtest "persist_in_session unset" => sub {
18 my $back = Catalyst::Authentication::Store::LDAP::Backend->new(
19 { 'ldap_server' => LDAPTest::server_host(),
20 'binddn' => 'anonymous',
21 'bindpw' => 'dontcarehow',
23 'user_basedn' => 'ou=foobar',
24 'user_filter' => '(&(objectClass=person)(uid=%s))',
25 'user_scope' => 'one',
26 'user_field' => 'uid',
31 my $user = $back->find_user( { username => 'somebody' } );
32 ok($stringy_session_value = $user->for_session, 'for_session ok');
33 is($stringy_session_value, 'somebody', 'for_session returns correct data');
34 ok($back->from_session($c, $stringy_session_value), 'from_session ok');
37 my $hash_session_value;
38 subtest "persist_in_session 'all'" => sub {
39 my $back = Catalyst::Authentication::Store::LDAP::Backend->new(
40 { ldap_server => LDAPTest::server_host(),
41 binddn => 'anonymous',
42 bindpw => 'dontcarehow',
44 user_basedn => 'ou=foobar',
45 user_filter => '(&(objectClass=person)(uid=%s))',
49 persist_in_session => 'all',
52 my $user = $back->find_user( { username => 'somebody' } );
53 ok($hash_session_value = $user->for_session, 'for_session ok');
54 is_deeply($hash_session_value,
56 persist_in_session => 'all',
60 "for_session returns correct data");
61 ok($back->from_session($c, $hash_session_value), 'from_session ok');
62 ok($back->from_session($c, $stringy_session_value), 'from_session ok for stringy value');
65 subtest "persist_in_session 'username'" => sub {
66 my $back = Catalyst::Authentication::Store::LDAP::Backend->new(
67 { ldap_server => LDAPTest::server_host(),
68 binddn => 'anonymous',
69 bindpw => 'dontcarehow',
71 user_basedn => 'ou=foobar',
72 user_filter => '(&(objectClass=person)(uid=%s))',
76 persist_in_session => 'username',
79 my $user = $back->find_user( { username => 'somebody' } );
80 ok(my $session = $stringy_session_value = $user->for_session, 'for_session ok');
81 is($session, 'somebody', 'for_session returns correct data');
82 ok($back->from_session($c, $session), 'from_session ok');
83 ok($back->from_session($c, $hash_session_value), 'from_session ok for hash value')
84 or diag explain $hash_session_value;