my
@tests
= (
sub
{
my
$t
=
"on_error string format - no filters"
;
my
$context
= {
'variable_name'
=>
'my_variable'
,
'filtered_by'
=> [],
'file_name'
=>
'/template.tt'
,
'file_line'
=> 1
};
my
$out
= Template::Directive::XSSAudit->event_parameter_to_string(
$context
,
'on_error'
);
ok(
$out
eq
"/template.tt\tNO_FILTERS\tline:1\tmy_variable"
,
$t
);
},
sub
{
my
$t
=
"on_error string format - no file_line"
;
my
$context
= {
'variable_name'
=>
'my_variable'
,
'filtered_by'
=> [],
'file_name'
=>
'/template.tt'
,
'file_line'
=>
''
};
my
$out
= Template::Directive::XSSAudit->event_parameter_to_string(
$context
,
'on_error'
);
ok(
$out
eq
"/template.tt\tNO_FILTERS\tline:0\tmy_variable"
,
$t
);
},
sub
{
my
$t
=
"on_error string format - no file_name"
;
my
$context
= {
'variable_name'
=>
'my_variable'
,
'filtered_by'
=> [],
'file_name'
=>
''
,
'file_line'
=>
'1'
};
my
$out
= Template::Directive::XSSAudit->event_parameter_to_string(
$context
,
'on_error'
);
ok(
$out
eq
"<unknown_file>\tNO_FILTERS\tline:1\tmy_variable"
,
$t
);
},
sub
{
my
$t
=
"on_error string format - 1 filter"
;
my
$context
= {
'variable_name'
=>
'my_variable'
,
'filtered_by'
=> [
'date'
],
'file_name'
=>
'/template.tt'
,
'file_line'
=> 1
};
my
$out
= Template::Directive::XSSAudit->event_parameter_to_string(
$context
,
'on_error'
);
ok(
$out
eq
"/template.tt\tNO_SAFE_FILTER\tline:1\tmy_variable\tdate"
,
$t
);
},
sub
{
my
$t
=
"on_error string format - 2 filter"
;
my
$context
= {
'variable_name'
=>
'my_variable'
,
'filtered_by'
=> [
'date'
,
'date2'
],
'file_name'
=>
'/template.tt'
,
'file_line'
=> 1
};
my
$out
= Template::Directive::XSSAudit->event_parameter_to_string(
$context
,
'on_error'
);
ok(
$out
eq
"/template.tt\tNO_SAFE_FILTER\tline:1\tmy_variable\tdate,date2"
,
$t
);
},
sub
{
my
$t
=
"on_filtered string format - 1 filter"
;
my
$context
= {
'variable_name'
=>
'my_variable'
,
'filtered_by'
=> [
'html'
],
'file_name'
=>
'/template.tt'
,
'file_line'
=> 1
};
my
$out
= Template::Directive::XSSAudit->event_parameter_to_string(
$context
,
'on_filtered'
);
ok(
$out
eq
"/template.tt\tOK\tline:1\tmy_variable\thtml"
,
$t
);
},
sub
{
my
$t
=
"on_filtered string format - 2 filter"
;
my
$context
= {
'variable_name'
=>
'my_variable'
,
'filtered_by'
=> [
'uri'
,
'html'
],
'file_name'
=>
'/template.tt'
,
'file_line'
=> 1
};
my
$out
= Template::Directive::XSSAudit->event_parameter_to_string(
$context
,
'on_filtered'
);
ok(
$out
eq
"/template.tt\tOK\tline:1\tmy_variable\turi,html"
,
$t
);
},
);
plan
tests
=>
scalar
@tests
;
$_
->()
for
@tests
;