only import Test::Exception where it is needed
[catagits/Catalyst-Plugin-Authentication.git] / t / lib / AuthRealmTestApp / Controller / Root.pm
1 package AuthRealmTestApp::Controller::Root;
2 use warnings;
3 use strict;
4 use base qw/Catalyst::Controller/;
5
6 __PACKAGE__->config(namespace => '');
7
8 use Test::More;
9
10 sub moose : Local {
11     my ( $self, $c ) = @_;
12
13     ok(!$c->user, "no user");
14
15     while ( my ($user, $info) = each %$AuthRealmTestApp::members ) {
16
17         ok(
18             $c->authenticate(
19                 { username => $user, password => $info->{password} },
20                 'members'
21             ),
22             "user $user authentication"
23         );
24
25         # check existing realms
26         ok( $c->user_in_realm('members'), "user in members realm");
27         ok(!$c->user_in_realm('admins'),  "user not in admins realm");
28
29         # check an invalid realm
30         ok(!$c->user_in_realm('foobar'), "user not in foobar realm");
31
32         # check if we've got the right user
33         is( $c->user, $info, "user object is in proper place");
34
35         $c->logout;
36
37         # sanity check
38         ok(!$c->user, "no more user after logout");
39
40     }
41
42     while ( my ($user, $info) = each %$AuthRealmTestApp::admins ) {
43
44         ok(
45             $c->authenticate(
46                 { username => $user, password => $info->{password} },
47                 'admins'
48             ),
49             "user $user authentication"
50         );
51
52         # check existing realms
53         ok(!$c->user_in_realm('members'), "user not in members realm");
54         ok( $c->user_in_realm('admins'),  "user in admins realm");
55
56         # check an invalid realm
57         ok(!$c->user_in_realm('foobar'), "user not in foobar realm");
58
59         # check if we've got the right user
60         is( $c->user, $info, "user object is in proper place");
61
62         $c->logout;
63
64         # sanity check
65         ok(!$c->user, "no more user after logout");
66
67     }
68
69     $c->res->body( "ok" );
70 }
71
72 1;
73