|
Lines 41-47
subtest 'new' => sub {
Link Here
|
| 41 |
}; |
41 |
}; |
| 42 |
|
42 |
|
| 43 |
subtest 'clear_unless' => sub { |
43 |
subtest 'clear_unless' => sub { |
| 44 |
plan tests => 16; |
44 |
plan tests => 17; |
| 45 |
|
45 |
|
| 46 |
t::lib::Mocks::mock_config( Koha::CookieManager::DENY_LIST_VAR, [ 'aap', 'noot' ] ); |
46 |
t::lib::Mocks::mock_config( Koha::CookieManager::DENY_LIST_VAR, [ 'aap', 'noot' ] ); |
| 47 |
|
47 |
|
|
Lines 74-81
subtest 'clear_unless' => sub {
Link Here
|
| 74 |
is( $rv[1]->httponly, 0, 'cleared wim is not httponly' ); |
74 |
is( $rv[1]->httponly, 0, 'cleared wim is not httponly' ); |
| 75 |
is( $rv[2]->httponly, 1, 'aap httponly' ); |
75 |
is( $rv[2]->httponly, 1, 'aap httponly' ); |
| 76 |
|
76 |
|
| 77 |
# Test with _123 prefix |
77 |
# Test with numeric suffix (via regex) |
| 78 |
t::lib::Mocks::mock_config( Koha::CookieManager::DENY_LIST_VAR, [ 'catalogue_editor_' ] ); |
78 |
t::lib::Mocks::mock_config( Koha::CookieManager::DENY_LIST_VAR, [ 'catalogue_editor_\d+' ] ); |
| 79 |
$cmgr = Koha::CookieManager->new; |
79 |
$cmgr = Koha::CookieManager->new; |
| 80 |
$cookie1 = $q->cookie( -name => 'catalogue_editor_234', -value => '1', -expires => '+1y' ); |
80 |
$cookie1 = $q->cookie( -name => 'catalogue_editor_234', -value => '1', -expires => '+1y' ); |
| 81 |
$cookie2 = $q->cookie( -name => 'catalogue_editor_345', -value => '1', -expires => '+1y' ); |
81 |
$cookie2 = $q->cookie( -name => 'catalogue_editor_345', -value => '1', -expires => '+1y' ); |
|
Lines 85-92
subtest 'clear_unless' => sub {
Link Here
|
| 85 |
$list = [ $cookie1, $cookie2, $cookie3, $cookie4 ]; |
85 |
$list = [ $cookie1, $cookie2, $cookie3, $cookie4 ]; |
| 86 |
@rv = @{$cmgr->clear_unless( @$list )}; |
86 |
@rv = @{$cmgr->clear_unless( @$list )}; |
| 87 |
is_deeply( [ map { $_->value ? $_->name : () } @rv ], |
87 |
is_deeply( [ map { $_->value ? $_->name : () } @rv ], |
| 88 |
[ 'catalogue_editor_234', 'catalogue_editor_345', 'catalogue_editor_' ], |
88 |
[ 'catalogue_editor_234', 'catalogue_editor_345' ], |
| 89 |
'Only cookie4 should have been cleared' ); |
89 |
'Cookie3 and cookie4 should have been cleared' ); |
|
|
90 |
|
| 91 |
# Test with another regex (yes, highly realistic examples :) |
| 92 |
t::lib::Mocks::mock_config( Koha::CookieManager::DENY_LIST_VAR, [ 'next_\w+_number\d{2}_(now|never).*' ] ); |
| 93 |
$cmgr = Koha::CookieManager->new; |
| 94 |
my $cookie5; |
| 95 |
$cookie1 = $q->cookie( -name => 'next_mynewword_number99_neverrr', -value => '1', -expires => '+1y' ); #fine |
| 96 |
$cookie2 = $q->cookie( -name => 'prefixed_next_mynewword_number99_never_better_123', -value => '1', -expires => '+1y' ); # wrong prefix |
| 97 |
$cookie3 = $q->cookie( -name => 'next_mynew-word_number99_never_better_123', -value => '1', -expires => '+1y' ); # wrong: hyphen in word |
| 98 |
$cookie4 = $q->cookie( -name => 'mynewword_number999_never_better_123', -value => '1', -expires => '+1y' ); # wrong: three digits |
| 99 |
$cookie5 = $q->cookie( -name => 'next_mynewword_number99_nooit_meer', -value => '1', -expires => '+1y' ); # wrong: nooit |
| 100 |
@rv = @{$cmgr->clear_unless( $cookie1, $cookie2, $cookie3, $cookie4, $cookie5 )}; |
| 101 |
is_deeply( [ map { $_->value ? $_->name : () } @rv ], [ 'next_mynewword_number99_neverrr' ], 'Only cookie1' ); |
| 102 |
|
| 90 |
}; |
103 |
}; |
| 91 |
|
104 |
|
| 92 |
subtest 'replace_in_list' => sub { |
105 |
subtest 'replace_in_list' => sub { |
| 93 |
- |
|
|