Commit | Line | Data |
95c6f6e8 |
1 | #!/usr/bin/perl |
2 | |
3 | use strict; |
4 | use warnings; |
5 | |
6 | use Test::More tests => 6; |
7 | use Test::MockObject; |
8 | use Test::MockObject::Extends; |
9 | |
10 | my $m; |
11 | BEGIN { use_ok( $m = "Catalyst::Plugin::SessionHP::State::Cookie" ) } |
12 | |
13 | my $cookie = Test::MockObject->new; |
14 | $cookie->set_always( value => "the session id" ); |
15 | |
16 | my $req = Test::MockObject->new; |
17 | my %req_cookies; |
18 | $req->set_always( cookies => \%req_cookies ); |
19 | |
20 | my $res = Test::MockObject->new; |
21 | my %res_cookies; |
22 | $res->set_always( cookies => \%res_cookies ); |
23 | |
24 | my $cxt = |
25 | Test::MockObject::Extends->new("Catalyst::Plugin::SessionHP::State::Cookie"); |
26 | |
27 | $cxt->set_always( config => {} ); |
28 | $cxt->set_always( request => $req ); |
29 | $cxt->set_always( response => $res ); |
30 | $cxt->set_always( session => { } ); |
31 | $cxt->set_always( session_expires => 123 ); |
32 | $cxt->set_false("debug"); |
33 | my $session_id; |
34 | $cxt->mock( session_id => sub { shift; $session_id = shift if @_; $session_id } ); |
35 | |
36 | can_ok( $m, "setup_session" ); |
37 | |
38 | $cxt->setup_session; |
39 | |
40 | like( $cxt->config->{session}{cookie_name}, |
41 | qr/_session$/, "default cookie name is set" ); |
42 | |
43 | $cxt->config->{session}{cookie_name} = "session"; |
44 | |
45 | can_ok( $m, "get_sesson_id_from_state" ); |
46 | |
47 | ok( !$cxt->get_sesson_id_from_state, "no session id yet"); |
48 | |
49 | $cxt->clear; |
50 | |
51 | %req_cookies = ( session => $cookie ); |
52 | |
53 | is( $cxt->get_sesson_id_from_state, "the session id", "session ID was restored from cookie" ); |
54 | |
55 | $cxt->clear; |
56 | $res->clear; |
57 | |
58 | |
59 | # can_ok( $m, "cookie_is_rejecting" ); |
60 | # %req_cookies = ( path => '/foo' ); |
61 | # $req->set_always( path => '' ); |
62 | # ok( $cxt->cookie_is_rejecting(\%req_cookies), "cookie is rejecting" ); |
63 | # $req->set_always( path => 'foo/bar' ); |
64 | # ok( !$cxt->cookie_is_rejecting(\%req_cookies), "cookie is not rejecting" ); |