X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Plugin-Session-State-Cookie.git;a=blobdiff_plain;f=t%2Flive_app.t;h=633a36ff3d97caff131df00e2abc89428e063d9b;hp=5852b94025b10773afb11da2bd7f79b04c67fb75;hb=3dfcd15644b566a7bf1c10fcc23376c5d1639ff7;hpb=db1cda22b4b70937a8fd6f3c105082985baacce7 diff --git a/t/live_app.t b/t/live_app.t index 5852b94..633a36f 100644 --- a/t/live_app.t +++ b/t/live_app.t @@ -10,6 +10,7 @@ BEGIN { plan skip_all => "This test requires Test::WWW::Mechanize::Catalyst in order to run" if $@; + plan skip_all => 'Test::WWW::Mechanize::Catalyst >= 0.40 required' if $Test::WWW::Mechanize::Catalyst::VERSION < 0.40; plan 'no_plan'; } @@ -29,9 +30,17 @@ BEGIN { sub stream : Local { my ( $self, $c ) = @_; - my $count = ++$c->session->{counter}; + my $count = ++$c->session->{counter}; $c->res->write("hit number "); - $c->res->write( $count ); + $c->res->write($count); + } + + sub deleteme : Local { + my ( $self, $c ) = @_; + my $id = $c->get_session_id; + $c->delete_session; + my $id2 = $c->get_session_id; + $c->res->body( $id ne ( $id2 || '' ) ); } __PACKAGE__->setup; @@ -41,24 +50,38 @@ use Test::WWW::Mechanize::Catalyst qw/CookieTestApp/; my $m = Test::WWW::Mechanize::Catalyst->new; -$m->get_ok("http://foo.com/stream", "get page"); -$m->content_contains("hit number 1", "session data created"); +$m->get_ok( "http://localhost/stream", "get page" ); +$m->content_contains( "hit number 1", "session data created" ); my $expired; -$m->cookie_jar->scan(sub { $expired = $_[8] }); +$m->cookie_jar->scan( sub { $expired = $_[8]; } ); -$m->get_ok("http://foo.com/page", "get page"); -$m->content_contains("hit number 2", "session data restored"); +$m->get_ok( "http://localhost/page", "get page" ); +$m->content_contains( "hit number 2", "session data restored" ); -$m->get_ok("http://foo.com/stream", "get stream"); -$m->content_contains("hit number 3", "session data restored"); +$m->get_ok( "http://localhost/stream", "get stream" ); +$m->content_contains( "hit number 3", "session data restored" ); sleep 1; -$m->get_ok("http://foo.com/page", "get stream"); -$m->content_contains("hit number 4", "session data restored"); +$m->get_ok( "http://localhost/stream", "get page" ); +$m->content_contains( "hit number 4", "session data restored" ); my $updated_expired; -$m->cookie_jar->scan(sub { $updated_expired = $_[8] }); +$m->cookie_jar->scan( sub { $updated_expired = $_[8]; } ); +cmp_ok( $expired, "<", $updated_expired, "cookie expiration was extended" ); + +$expired = $m->cookie_jar->scan( sub { $expired = $_[8] } ); +$m->get_ok( "http://localhost/page", "get page again"); +$m->content_contains( "hit number 5", "session data restored (blah)" ); + +sleep 1; + +$m->get_ok( "http://localhost/stream", "get stream" ); +$m->content_contains( "hit number 6", "session data restored" ); + +$m->cookie_jar->scan( sub { $updated_expired = $_[8]; } ); +cmp_ok( $expired, "<", $updated_expired, "streaming also extends cookie" ); -cmp_ok( $expired, "<", $updated_expired, "cookie expiration was extended"); +$m->get_ok( "http://localhost/deleteme", "get page" ); +$m->content_is( 1, 'session id changed' );