1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
use strict;
use warnings;
use File::Spec;
use File::Temp 0.22;
use LWP::UserAgent;
use Test::More;
use Test::TCP 1.13;
use YAML;
my $tempdir = File::Temp::tempdir( CLEANUP => 1, TMPDIR => 1 );
Test::TCP::test_tcp(
client => sub {
my $port = shift;
my $ua = LWP::UserAgent->new;
$ua->cookie_jar( { file => "$tempdir/.cookies.txt" } );
my $res = $ua->get("http://127.0.0.1:$port/main");
like $res->content, qr{42}, "session is set in main";
$res = $ua->get("http://127.0.0.1:$port/in_foo");
like $res->content, qr{42}, "session is set in foo";
my $engine = t::lib::Foo->dsl->engine('session');
is $engine->{__marker__}, 1,
"the session engine in subapp is the same";
File::Temp::cleanup();
},
server => sub {
my $port = shift;
BEGIN {
use Dancer2;
set session => 'Simple';
engine('session')->{'__marker__'} = 1;
}
use t::lib::Foo with => { session => engine('session') };
get '/main' => sub {
session( 'test' => 42 );
};
setting appdir => $tempdir;
# we're overiding a RO attribute only for this test!
Dancer2->runner->{'port'} = $port;
start;
},
);
done_testing;
|