Commit | Line | Data |
a45fc086 |
1 | #!/usr/bin/perl |
2 | |
3 | use strict; |
4 | use warnings; |
5 | |
6 | use Test::More; |
7 | use Catalyst::Authentication::Store::LDAP::Backend; |
8 | use lib 't/lib'; |
9 | use LDAPTest; |
10 | |
11 | my $server = LDAPTest::spawn_server(); |
12 | |
574fdac2 |
13 | # the tests currently don't require a real Catalyst app instance |
14 | my $c; |
a45fc086 |
15 | |
100c5133 |
16 | my $stringy_session_value; |
574fdac2 |
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', |
22 | 'start_tls' => 0, |
23 | 'user_basedn' => 'ou=foobar', |
24 | 'user_filter' => '(&(objectClass=person)(uid=%s))', |
25 | 'user_scope' => 'one', |
26 | 'user_field' => 'uid', |
27 | 'use_roles' => 0, |
28 | } |
29 | ); |
a45fc086 |
30 | |
574fdac2 |
31 | my $user = $back->find_user( { username => 'somebody' } ); |
100c5133 |
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'); |
574fdac2 |
35 | }; |
a45fc086 |
36 | |
100c5133 |
37 | my $hash_session_value; |
38 | subtest "persist_in_session 'all'" => sub { |
574fdac2 |
39 | my $back = Catalyst::Authentication::Store::LDAP::Backend->new( |
40 | { ldap_server => LDAPTest::server_host(), |
41 | binddn => 'anonymous', |
42 | bindpw => 'dontcarehow', |
43 | start_tls => 0, |
44 | user_basedn => 'ou=foobar', |
45 | user_filter => '(&(objectClass=person)(uid=%s))', |
46 | user_scope => 'one', |
47 | user_field => 'uid', |
48 | use_roles => 0, |
100c5133 |
49 | persist_in_session => 'all', |
574fdac2 |
50 | } |
51 | ); |
52 | my $user = $back->find_user( { username => 'somebody' } ); |
100c5133 |
53 | ok($hash_session_value = $user->for_session, 'for_session ok'); |
54 | is_deeply($hash_session_value, |
55 | { |
56 | persist_in_session => 'all', |
57 | user => $user->user, |
58 | _roles => [], |
59 | }, |
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'); |
574fdac2 |
63 | }; |
64 | |
100c5133 |
65 | subtest "persist_in_session 'username'" => sub { |
574fdac2 |
66 | my $back = Catalyst::Authentication::Store::LDAP::Backend->new( |
67 | { ldap_server => LDAPTest::server_host(), |
68 | binddn => 'anonymous', |
69 | bindpw => 'dontcarehow', |
70 | start_tls => 0, |
71 | user_basedn => 'ou=foobar', |
72 | user_filter => '(&(objectClass=person)(uid=%s))', |
73 | user_scope => 'one', |
74 | user_field => 'uid', |
75 | use_roles => 0, |
100c5133 |
76 | persist_in_session => 'username', |
574fdac2 |
77 | } |
78 | ); |
79 | my $user = $back->find_user( { username => 'somebody' } ); |
100c5133 |
80 | ok(my $session = $stringy_session_value = $user->for_session, 'for_session ok'); |
81 | is($session, 'somebody', 'for_session returns correct data'); |
574fdac2 |
82 | ok($back->from_session($c, $session), 'from_session ok'); |
100c5133 |
83 | ok($back->from_session($c, $hash_session_value), 'from_session ok for hash value') |
84 | or diag explain $hash_session_value; |
574fdac2 |
85 | }; |
a45fc086 |
86 | |
87 | done_testing; |