use Test::More;
BEGIN {
- eval { require Catalyst::Plugin::Session; require Catalyst::Plugin::Session::State::Cookie };
- if ($@) {
- plan skip_all => "This test needs Catalyst::Plugin::Session and Catalyst::Plugin::Session::State::Cookie installed";
- } else {
- plan tests => 12;
- }
+ 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 tests => 14;
}
{
+ 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
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");
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)" );
}
__PACKAGE__->config->{authentication}{users} = $users = {
- foo => {
+ foo => User::SessionRestoring->new(
+ id => 'foo',
password => "s3cr3t",
- },
+ ),
};
__PACKAGE__->setup;
+
+ $users->{foo}{store} = __PACKAGE__->default_auth_store;
}
use Test::WWW::Mechanize::Catalyst qw/AuthTestApp/; # for the cookie support