BEGIN { plan
tests
=> 1 }
my
$handler
= TestH->new();
my
$parser
= XML::SAX::ExpatXS->new(
Handler
=>
$handler
);
my
$xml
=
<<_xml_;
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!DOCTYPE html PUBLIC "pub" "sys">
<foo>
<wrong&>
</foo>
_xml_
eval
{
$parser
->parse_string(
$xml
) };
ok(
$handler
->{data} eq
'_ferr|not well-formed (invalid token) at line 4, column 9, byte 105|not well-formed (invalid token)|4|9||'
);
sub
new {
bless
{
data
=>
''
},
shift
}
sub
warning {
my
(
$self
,
$ex
) =
@_
;
$self
->{data} .=
'_warn|'
.
$ex
->{Message};
$self
->{data} .=
'|'
.
$ex
->{Exception};
$self
->{data} .=
'|'
.
$ex
->{LineNumber};
$self
->{data} .=
'|'
.
$ex
->{ColumnNumber};
}
sub
error {
my
(
$self
,
$ex
) =
@_
;
$self
->{data} .=
'_err|'
.
$ex
->{Message};
$self
->{data} .=
'|'
.
$ex
->{Exception};
$self
->{data} .=
'|'
.
$ex
->{LineNumber};
$self
->{data} .=
'|'
.
$ex
->{ColumnNumber};
}
sub
fatal_error {
my
(
$self
,
$ex
) =
@_
;
$self
->{data} .=
'_ferr|'
.
$ex
->{Message};
$self
->{data} .=
'|'
.
$ex
->{Exception};
$self
->{data} .=
'|'
.
$ex
->{LineNumber};
$self
->{data} .=
'|'
.
$ex
->{ColumnNumber};
$self
->{data} .=
'|'
.
$ex
->{PublicId};
$self
->{data} .=
'|'
.
$ex
->{SystemId};
}