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