e5f5049e217ffaabe53a90589801b0c138a4830e
[catagits/Catalyst-Authentication-Store-DBIx-Class.git] / t / 03-authtest.t
1 #!perl\r
2 \r
3 use strict;\r
4 use warnings;\r
5 use DBI;\r
6 use File::Path;\r
7 use FindBin;\r
8 use Test::More;\r
9 use lib "$FindBin::Bin/lib";\r
10 \r
11 BEGIN {\r
12     eval { require DBD::SQLite }\r
13         or plan skip_all =>\r
14         "DBD::SQLite is required for this test";\r
15 \r
16     eval { require DBIx::Class }\r
17         or plan skip_all =>\r
18         "DBIx::Class is required for this test";\r
19 \r
20     plan tests => 14;\r
21 \r
22     $ENV{TESTAPP_DB_FILE} = "$FindBin::Bin/auth.db" unless exists($ENV{TESTAPP_DB_FILE});\r
23 \r
24     $ENV{TESTAPP_CONFIG} = {\r
25         name => 'TestApp',\r
26         authentication => {\r
27             default_realm => "users",\r
28             realms => {\r
29                 users => {\r
30                     credential => {\r
31                         'class' => "Password",\r
32                         'password_field' => 'password',\r
33                         'password_type' => 'clear'\r
34                     },\r
35                     store => {\r
36                         'class' => 'DBIx::Class',\r
37                         'user_class' => 'TestApp::User',\r
38                     },\r
39                 },\r
40             },\r
41         },\r
42     };\r
43 \r
44     $ENV{TESTAPP_PLUGINS} = [\r
45         qw/Authentication/\r
46     ];\r
47 }\r
48 \r
49 use SetupDB;\r
50 \r
51 use Catalyst::Test 'TestApp';\r
52 \r
53 # log a user in\r
54 {\r
55     ok( my $res = request('http://localhost/user_login?username=joeuser&password=hackme'), 'request ok' );\r
56     is( $res->content, 'joeuser logged in', 'user logged in ok' );\r
57 }\r
58 \r
59 # invalid user\r
60 {\r
61     ok( my $res = request('http://localhost/user_login?username=foo&password=bar'), 'request ok' );\r
62     is( $res->content, 'not logged in', 'user not logged in ok' );\r
63 }\r
64 \r
65 # disabled user - no disable check\r
66 {\r
67     ok( my $res = request('http://localhost/user_login?username=spammer&password=broken'), 'request ok' );\r
68     is( $res->content, 'spammer logged in', 'status check - disabled user logged in ok' );\r
69 }\r
70 \r
71 # disabled user - should fail login\r
72 {\r
73     ok( my $res = request('http://localhost/notdisabled_login?username=spammer&password=broken'), 'request ok' );\r
74     is( $res->content, 'not logged in', 'status check - disabled user not logged in ok' );\r
75 }\r
76 \r
77 # log the user out\r
78 {\r
79     ok( my $res = request('http://localhost/user_logout'), 'request ok' );\r
80     is( $res->content, 'logged out', 'user logged out ok' );\r
81 }\r
82 \r
83 # searchargs test\r
84 {\r
85     ok( my $res = request('http://localhost/searchargs_login?email=nada%40mucho.net&password=much'), 'request ok' );\r
86     is( $res->content, 'nuffin logged in', 'searchargs based login ok' );\r
87 }\r
88 \r
89 # resultset test\r
90 # searchargs test\r
91 {\r
92     ok( my $res = request('http://localhost/resultset_login?email=j%40cpants.org&password=letmein'), 'request ok' );\r
93     is( $res->content, 'jayk logged in', 'resultset based login ok' );\r
94 }\r
95 \r
96 \r
97 # clean up\r
98 unlink $ENV{TESTAPP_DB_FILE};\r