X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flive_app_session.t;h=756605e974920004c68a63ffa79749742f78f535;hb=2ded293dddc31387361e3509aac6dd7b5584dd51;hp=dc9df45f5dceffb34adc2590d301780cf8ece4b1;hpb=ce0b058db52ea4c39e1563f4950c1cc5749f0a00;p=catagits%2FCatalyst-Plugin-Authentication.git diff --git a/t/live_app_session.t b/t/live_app_session.t index dc9df45..756605e 100644 --- a/t/live_app_session.t +++ b/t/live_app_session.t @@ -1,86 +1,29 @@ -#!/usr/bin/perl - use strict; use warnings; use Test::More; BEGIN { - eval { require Catalyst::Plugin::Session; require Catalyst::Plugin::Session::State::Cookie }; - plan skip_all => "This test needs Catalyst::Plugin::Session and Catalyst::Plugin::Session::State::Cookie installed" if $@; - plan tests => 14; + eval { require Test::WWW::Mechanize::Catalyst; require Catalyst::Plugin::Session; require Catalyst::Plugin::Session::State::Cookie }; + plan skip_all => "This test needs Test::WWW::Mechanize::Catalyst, Catalyst::Plugin::Session and Catalyst::Plugin::Session::State::Cookie installed" if $@; + plan skip_all => "This test needs Test::WWW::Mechanize::Catalyst >= 0.50, you have only $Test::WWW::Mechanize::Catalyst::VERSION" + unless $Test::WWW::Mechanize::Catalyst::VERSION >= 0.50; } -{ - package User::SessionRestoring; - use base qw/Catalyst::Plugin::Authentication::User::Hash/; - - sub for_session { $_[0]->id } - sub store { $_[0]->{store} } - - package AuthTestApp; - use Catalyst qw/ - Session - Session::Store::Dummy - Session::State::Cookie - - Authentication - Authentication::Store::Minimal - Authentication::Credential::Password - /; - - use Test::More; - use Test::Exception; - - use Digest::MD5 qw/md5/; - - our $users; - - sub moose : Local { - my ( $self, $c ) = @_; - - ok(!$c->sessionid, "no session id yet"); - ok(!$c->user_exists, "no user exists"); - ok(!$c->user, "no user yet"); - ok($c->login( "foo", "s3cr3t" ), "can login with clear"); - is( $c->user, $users->{foo}, "user object is in proper place"); - } - - sub elk : Local { - my ( $self, $c ) = @_; - - ok( $c->sessionid, "session ID was restored" ); - ok( $c->user_exists, "user exists" ); - ok( $c->user, "a user was also restored"); - is_deeply( $c->user, $users->{foo}, "restored user is the right one (deep test - store might change identity)" ); +use lib 't/lib'; +use Test::WWW::Mechanize::Catalyst qw/AuthSessionTestApp/; # for the cookie support - $c->delete_session("bah"); - } - - sub fluffy_bunny : Local { - my ( $self, $c ) = @_; - - ok( !$c->sessionid, "no session ID was restored"); - ok( !$c->user, "no user was restored"); - } +my $m = Test::WWW::Mechanize::Catalyst->new; - __PACKAGE__->config->{authentication}{users} = $users = { - foo => User::SessionRestoring->new( - id => 'foo', - password => "s3cr3t", - ), - }; +$m->get_ok("http://localhost/moose", "get ok"); +$m->get_ok("http://localhost/elk", "get ok"); - __PACKAGE__->setup; +$m->get("http://localhost/yak"); +ok(!$m->success, 'Not ok, user unable to be resotred == nasal demons'); - $users->{foo}{store} = __PACKAGE__->default_auth_store; +foreach my $type (qw/ goat fluffy_bunny possum butterfly /) { + $m->get_ok("http://localhost/$type", "get $type ok"); } -use Test::WWW::Mechanize::Catalyst qw/AuthTestApp/; # for the cookie support - -my $m = Test::WWW::Mechanize::Catalyst->new; - -$m->get_ok("http://localhost/moose", "get ok"); -$m->get_ok("http://localhost/elk", "get ok"); -$m->get_ok("http://localhost/fluffy_bunny", "get ok"); +done_testing;