Changeset 22273
- Timestamp:
- 10/28/08 14:24:40 (5 years ago)
- Location:
- lang/perl/Sledge-HTTPSession/trunk
- Files:
-
- 1 removed
- 3 modified
-
lib/Sledge/HTTPSession/Plugin.pm (modified) (3 diffs)
-
lib/Sledge/HTTPSession/SessionManager.pm (deleted)
-
t/01_cookie.t (modified) (2 diffs)
-
t/Pages.pm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/Sledge-HTTPSession/trunk/lib/Sledge/HTTPSession/Plugin.pm
r22146 r22273 4 4 use HTTP::Session; 5 5 use Sledge::HTTPSession::Session; 6 use Sledge::HTTPSession::SessionManager;7 6 use Sledge::HTTPSession::Request; 8 7 use Sledge::HTTPSession::Response; … … 36 35 37 36 }; 38 *{"$pkg\::create_manager"} = \&_create_manager; 37 *{"$pkg\::create_manager"} = \&_create_manager; 38 *{"$pkg\::construct_session"} = \&_construct_session; 39 39 } 40 40 41 sub _create_manager { 41 sub _create_manager { } 42 43 sub _construct_session { 42 44 my $self = shift; 43 45 my $store = $self->create_session_store(); … … 49 51 _page => $self, 50 52 ); 51 my $res = Sledge::HTTPSession::Response->new( $self->r ); 52 $session->header_filter($res); 53 return Sledge::HTTPSession::SessionManager->new( $session ); 53 if ($session->is_fresh) { 54 my $res = Sledge::HTTPSession::Response->new( $self->r ); 55 $session->header_filter($res); 56 } 57 $self->session($session); 54 58 } 55 59 -
lang/perl/Sledge-HTTPSession/trunk/t/01_cookie.t
r22146 r22273 1 1 use strict; 2 2 use warnings; 3 use Test::More tests => 3;3 use Test::More tests => 6; 4 4 use CGI; 5 5 use t::Pages; … … 7 7 use HTTP::Session::State::Cookie; 8 8 9 my $r = t::Request->new( 10 in => { 11 'Cookie' => 'http_session_sid=deadbeaf; path=/', 12 }, 13 ); 14 my $store = HTTP::Session::Store::Test->new( 15 data => { 16 'deadbeaf' => { }, 17 }, 18 ); 19 my $page = t::Pages->new( 20 r => $r, 21 store => $store, 22 state => HTTP::Session::State::Cookie->new(), 23 callback => sub { 24 my $self = shift; 25 isa_ok $self->session, 'Sledge::HTTPSession::Session'; 26 is $self->session->session_id, 'deadbeaf'; 27 $self->session->param('foo' => 'bar'); 28 $self->content('foobar'); 29 }, 30 ); 31 $page->dispatch; 32 like $r->{out}->{'Set-Cookie'}, qr{^http_session_sid=deadbeaf; path=/$}, 'set-cookie header'; 9 sub { 10 # first request 11 my $r = t::Request->new( 12 in => { }, 13 ); 14 my $store = HTTP::Session::Store::Test->new( 15 data => { }, 16 ); 17 my $page = t::Pages->new( 18 r => $r, 19 store => $store, 20 state => HTTP::Session::State::Cookie->new(), 21 callback => sub { 22 my $self = shift; 23 isa_ok $self->session, 'Sledge::HTTPSession::Session'; 24 like $self->session->session_id, qr/^[a-z0-9]{32}$/; 25 $self->session->param('foo' => 'bar'); 26 $self->content('foobar'); 27 }, 28 ); 29 $page->dispatch; 30 like $r->{out}->{'Set-Cookie'}, qr{^http_session_sid=[a-z0-9]{32}; path=/$}, 'set-cookie header'; 31 }->(); 32 33 sub { 34 # second request 35 my $r = t::Request->new( 36 in => { 37 'Cookie' => 'http_session_sid=deadbeaf; path=/', 38 }, 39 ); 40 my $store = HTTP::Session::Store::Test->new( 41 data => { 42 'deadbeaf' => { }, 43 }, 44 ); 45 my $page = t::Pages->new( 46 r => $r, 47 store => $store, 48 state => HTTP::Session::State::Cookie->new(), 49 callback => sub { 50 my $self = shift; 51 isa_ok $self->session, 'Sledge::HTTPSession::Session'; 52 is $self->session->session_id, 'deadbeaf'; 53 $self->session->param('foo' => 'bar'); 54 $self->content('foobar'); 55 }, 56 ); 57 $page->dispatch; 58 is $r->{out}->{'Set-Cookie'}, undef, "don't send set-cookie header"; 59 }->(); 60 -
lang/perl/Sledge-HTTPSession/trunk/t/Pages.pm
r22146 r22273 35 35 has manager => ( 36 36 is => 'rw', 37 default => sub { shift->create_manager }, 37 38 ); 38 39 has r => ( … … 69 70 push @{$self->{filters}}, $filter; 70 71 } 72 sub init_dispatch { 73 my ($self, $page) = @_; 74 $self->construct_session(); 75 } 71 76 sub dispatch { 72 77 my ($self, $page) = @_; 73 78 74 $self->manager( $self->create_manager ); 75 my $session = $self->manager()->get_session; 76 $self->session( $session ); 77 $self->manager->set_session( $session ) if $session->is_fresh; 78 79 $self->call_trigger('BEFORE_DISPATCH'); 79 $self->init_dispatch(); 80 $self->call_trigger('BEFORE_DISPATCH') unless $self->finished; 80 81 $self->callback->($self); 81 82 if (!$self->finished) {
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)