2475553ff9523727f16e81a9bbbe82c6e0efad4e
[catagits/Catalyst-Plugin-Authentication.git] / t / lib / AuthSessionTestApp / Controller / Root.pm
1 package AuthSessionTestApp::Controller::Root;
2 use strict;
3 use warnings;
4 use base qw/Catalyst::Controller/;
5
6 __PACKAGE__->config(namespace => '');
7
8 use Test::More;
9 use Test::Exception;
10
11 use Digest::MD5 qw/md5/;
12
13 sub moose : Local {
14         my ( $self, $c ) = @_;
15
16         ok(!$c->sessionid, "no session id yet");
17         ok(!$c->user_exists, "no user exists");
18         ok(!$c->user, "no user yet");
19         ok($c->login( "foo", "s3cr3t" ), "can login with clear");
20         is( $c->user, $AuthSessionTestApp::users->{foo}, "user object is in proper place");
21 }
22
23 sub elk : Local {
24         my ( $self, $c ) = @_;
25
26         ok( $c->sessionid, "session ID was restored" );
27         ok( $c->user_exists, "user exists" );
28         ok( $c->user, "a user was also restored");
29         is_deeply( $c->user, $AuthSessionTestApp::users->{foo}, "restored user is the right one (deep test - store might change identity)" );
30
31         # Rename the user!
32         $AuthSessionTestApp::users->{bar} = delete $AuthSessionTestApp::users->{foo};
33 }
34
35 sub yak : Local {
36     my ( $self, $c ) = @_;
37     ok( $c->sessionid, "session ID was restored after user renamed" );
38     ok( $c->user_exists, "user appears to exist" );
39     ok( !$c->user, "user was not restored");
40     ok(scalar(@{ $c->error }), 'Error recorded');
41     ok( !$c->user_exists, "user no longer appears to exist" );
42 }
43
44 sub goat : Local {
45     my ( $self, $c ) = @_;
46     ok($c->login( "bar", "s3cr3t" ), "can login with clear (new username)");
47     is( $c->user, $AuthSessionTestApp::users->{bar}, "user object is in proper place");
48     $c->logout;
49 }
50
51 sub fluffy_bunny : Local {
52     my ( $self, $c ) = @_;
53
54     ok( $c->session_is_valid, "session ID is restored after logout");
55     ok( !$c->user, "no user was restored after logout");
56
57     $c->delete_session("bah");
58 }
59
60 sub possum : Local {
61     my ( $self, $c ) = @_;
62
63         ok( !$c->session_is_valid, "no session ID was restored");
64     $c->session->{definitely_not_a_user} = "moose";
65
66 }
67
68 sub butterfly : Local {
69     my ( $self, $c ) = @_;
70
71     ok( $c->session_is_valid, "valid session" );
72     ok( !$c->user_exists, "but no user exists" );
73     ok( !$c->user, "no user object either" );
74 }
75
76 1;
77