Test + fixes for new auth draft
[catagits/Catalyst-Plugin-Authentication.git] / t / live_app.t
CommitLineData
b003080b 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use Test::More 'no_plan';
7
8{
9 package AuthTestApp;
10 use Catalyst qw/
11 Authentication
12 Authentication::Store::Minimal
13 Authentication::Credential::Password
14 /;
15
16 use Test::More;
17 use Test::Exception;
18
19 use Digest::MD5 qw/md5/;
20
21 our $users;
22
23 sub moose : Local {
24 my ( $self, $c ) = @_;
25
26 ok(!$c->user, "no user");
27 ok($c->login( "foo", "s3cr3t" ), "can login with clear");
28 is( $c->user, $users->{foo}, "user object is in proper place");
29 $c->logout;
30
31 ok(!$c->user, "no more user, after logout");
32
33 ok($c->login( "bar", "s3cr3t" ), "can login with crypted");
34 is( $c->user, $users->{bar}, "user object is in proper place");
35 $c->logout;
36
37 ok($c->login("gorch", "s3cr3t"), "can login with hashed");
38 is( $c->user, $users->{gorch}, "user object is in proper place");
39 $c->logout;
40
41 ok(!$c->login( "bar", "bad pass" ), "can't login with bad password");
42 ok(!$c->user, "no user");
43
44 throws_ok { $c->login( "baz", "foo" ) } qr/support.*mechanism/, "can't login without any supported mech";
45 }
46
47 __PACKAGE__->config->{authentication}{users} = $users = {
48 foo => {
49 password => "s3cr3t",
50 },
51 bar => {
52 crypted_password => crypt("s3cr3t", "x8"),
53 },
54 gorch => {
55 hashed_password => md5("s3cr3t"),
56 hash_algorithm => "MD5",
57 },
58 baz => {},
59 };
60
61 __PACKAGE__->setup;
62}
63
64use Catalyst::Test qw/AuthTestApp/;
65
66get("/moose");