# Before `make install' is performed this script should be runnable
# with `make test'. After `make install' it should work as `perl
# PerlErrorHandler.t'
######################### We start with some black magic to print on failure.
END {ok(0) unless $loaded;}
use Carp;
# use blib;
use XML::Xerces;
use Test::More tests => 6;
use lib 't';
use TestUtils qw($PERSONAL);
use subs qw(warning error fatal_error);
use vars qw($error $loaded);
$loaded = 1;
ok($loaded, "module loaded");
######################### End of black magic.
my $document = <<\END;
BossBigchief@foo.comWorkerOneone@foo.comWorkerTwotwo@foo.com
END
package MyErrorHandler;
use strict;
use vars qw(@ISA);
@ISA = qw(XML::Xerces::PerlErrorHandler);
sub warning {
my $LINE = $_[1]->getLineNumber;
my $COLUMN = $_[1]->getColumnNumber;
my $MESSAGE = $_[1]->getMessage;
$::error = <<"EOE";
WARNING:
LINE: $LINE
COLUMN: $COLUMN
MESSAGE: $MESSAGE
EOE
die "\n";
}
sub error {
my $LINE = $_[1]->getLineNumber;
my $COLUMN = $_[1]->getColumnNumber;
my $MESSAGE = $_[1]->getMessage;
$::error = <<"EOE";
ERROR:
LINE: $LINE
COLUMN: $COLUMN
MESSAGE: $MESSAGE
EOE
die "\n";
}
sub fatal_error {
my $LINE = $_[1]->getLineNumber;
my $COLUMN = $_[1]->getColumnNumber;
my $MESSAGE = $_[1]->getMessage;
$::error = <<"EOE";
FATAL ERROR:
LINE: $LINE
COLUMN: $COLUMN
MESSAGE: $MESSAGE
EOE
die "\n";
}
1;
package main;
{
$error = "";
my $dom = XML::Xerces::XercesDOMParser->new();
my $error_handler = MyErrorHandler->new();
$dom->setErrorHandler($error_handler);
eval {
$dom->parse(XML::Xerces::MemBufInputSource->new($document, 'foo') );
};
my $expected_error = <new();
my $error_handler = MyErrorHandler->new();
$dom->setErrorHandler($error_handler);
$dom->setValidationScheme($XML::Xerces::AbstractDOMParser::Val_Always);
eval {
$dom->parse(XML::Xerces::MemBufInputSource->new($document, 'foo') );
};
my $expected_error = <new();
my $error_handler = MyErrorHandler->new();
my $error_handler2 = MyErrorHandler->new();
my $tmp = $dom->setErrorHandler($error_handler);
ok(!defined $tmp);
$tmp = $dom->setErrorHandler($error_handler2);
SKIP : {
skip "temporarily not returning old handler", 1 unless defined($tmp);
ok(defined $tmp);
}
$dom->setValidationScheme($XML::Xerces::AbstractDOMParser::Val_Always);
eval {
$dom->parse(XML::Xerces::MemBufInputSource->new($document, 'foo') );
};
my $expected_error = <