Version 1.017
[catagits/Catalyst-Authentication-Store-LDAP.git] / t / 20-persist_in_session.t
CommitLineData
a45fc086 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use Test::More;
7use Catalyst::Authentication::Store::LDAP::Backend;
8use lib 't/lib';
9use LDAPTest;
10
11my $server = LDAPTest::spawn_server();
12
574fdac2 13# the tests currently don't require a real Catalyst app instance
14my $c;
a45fc086 15
100c5133 16my $stringy_session_value;
574fdac2 17subtest "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 37my $hash_session_value;
38subtest "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 65subtest "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
87done_testing;