my
(
$original_purpose
);
BEGIN {
if
(CGI::Session->can(
'find'
) )
{
plan
tests
=> 7;
unlink
<t/cgisess*>;
$original_purpose
=
"Create session simply to test deleting it with CGI::Session's sub find()"
;
}
else
{
plan
skip_all
=>
"Requires a version of CGI::Session with method 'find()'"
;
}
};
{
my
(
$s
) = CGI::Session->new(
undef
,
undef
, {
Directory
=>
't'
} );
ok(
$s
,
'The test session has been created'
);
$s
->expire(5);
ok(
$s
->id,
"The test session's id has been set"
);
$s
->param(
purpose
=>
$original_purpose
);
ok(
$s
->param(
'purpose'
),
"The test session's parameter called 'purpose' has been set"
);
}
sub
callback {
my
(
$session
) =
@_
;
isa_ok(
$session
,
'CGI::Session'
,
'CGI::Session::find() found a session whose class'
);
ok(
$session
->param(
'purpose'
),
"The found session's param called 'purpose' has a true value"
);
is(
$original_purpose
,
$session
->param(
'purpose'
),
"The found session's param called 'purpose' has the expected value"
);
$session
->
delete
();
$session
->flush();
diag
'The found session has been deleted and flushed'
;
}
CGI::Session->find(
undef
, \
&callback
, {
Directory
=>
't'
});
is(CGI::Session->errstr,
''
,
'find() returned no errors'
);