--- /dev/null
+#!/usr/bin/perl
+
+package Catalyst::Plugin::Session::Store::Dummy;
+use base qw/Catalyst::Plugin::Session::Store/;
+
+use strict;
+use warnings;
+
+my %store;
+
+sub get_session_data {
+ my ( $c, $sid ) = @_;
+ $store{$sid};
+}
+
+sub store_session_data {
+ my ( $c, $sid, $data ) = @_;
+ $store{$sid} = $data;
+}
+
+sub delete_session_data {
+ my ( $c, $sid ) = @_;
+ delete $store{$sid};
+}
+
+sub delete_expired_sessions { }
+
+__PACKAGE__;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+Catalyst::Plugin::Session::Store::Dummy -
+
+=head1 SYNOPSIS
+
+ use Catalyst::Plugin::Session::Store::Dummy;
+
+=head1 DESCRIPTION
+
+=cut
+
+
--- /dev/null
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More;
+
+BEGIN {
+ eval { require Catalyst::Plugin::Session::State::Cookie }
+ or plan skip_all =>
+ "Catalyst::Plugin::Session::State::Cookie is required for this test";
+
+ eval { require Test::WWW::Mechanize::Catalyst }
+ or plan skip_all =>
+ "Test::WWW::Mechanize::Catalyst is required for this test";
+
+ plan tests => 30;
+}
+
+use lib "t/lib";
+use Test::WWW::Mechanize::Catalyst "SessionTestApp";
+
+my $ua1 = Test::WWW::Mechanize::Catalyst->new;
+my $ua2 = Test::WWW::Mechanize::Catalyst->new;
+
+$_->get_ok("http://localhost/page", "initial get") for $ua1, $ua2;
+
+$ua1->content_contains( "please login", "ua1 not logged in" );
+$ua2->content_contains( "please login", "ua2 not logged in" );
+
+$ua1->get_ok("http://localhost/login", "log ua1 in");
+$ua1->content_contains( "logged in", "ua1 logged in" );
+
+$_->get_ok("http://localhost/page", "get main page") for $ua1, $ua2;
+
+$ua1->content_contains( "you are logged in", "ua1 logged in" );
+$ua2->content_contains( "please login", "ua2 not logged in" );
+
+$ua2->get_ok("http://localhost/login", "get main page");
+$ua2->content_contains( "logged in", "log ua2 in" );
+
+$_->get_ok("http://localhost/page", "get main page") for $ua1, $ua2;
+
+$ua1->content_contains( "you are logged in", "ua1 logged in" );
+$ua2->content_contains( "you are logged in", "ua2 logged in" );
+
+$ua2->get_ok("http://localhost/logout", "log ua2 out");
+$ua2->content_like( qr/logged out/, "ua2 logged out" );
+$ua2->content_like( qr/after 1 request/, "ua2 made 1 request for page in the session" );
+
+$_->get_ok("http://localhost/page", "get main page") for $ua1, $ua2;
+
+$ua1->content_contains( "you are logged in", "ua1 logged in" );
+$ua2->content_contains( "please login", "ua2 not logged in" );
+
+$ua1->get_ok("http://localhost/logout", "log ua1 out");
+$ua1->content_like( qr/logged out/, "ua1 logged out" );
+$ua1->content_like( qr/after 3 requests/, "ua1 made 3 request for page in the session" );
+
+$_->get_ok("http://localhost/page", "get main page") for $ua1, $ua2;
+
+$ua1->content_contains( "please login", "ua1 not logged in" );
+$ua2->content_contains( "please login", "ua2 not logged in" );
+
+