You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ja...@apache.org on 2001/10/07 04:53:31 UTC
cvs commit: xml-xerces/perl/t SAXParser.t
jasons 01/10/06 19:53:31
Modified: perl/t SAXParser.t
Log:
* t/SAXParser.t (Repository):
added test for parse($filename)
added test for progressive parse
added test for reusing parse after aborted progressive parse
Revision Changes Path
1.5 +114 -2 xml-xerces/perl/t/SAXParser.t
Index: SAXParser.t
===================================================================
RCS file: /home/cvs/xml-xerces/perl/t/SAXParser.t,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SAXParser.t 2001/06/14 05:47:24 1.4
+++ SAXParser.t 2001/10/07 02:53:31 1.5
@@ -7,7 +7,7 @@
# Change 1..1 below to 1..last_test_to_print .
# (It may become useful if the test is moved to ./t subdirectory.)
-BEGIN { $| = 1; print "1..4\n"; }
+BEGIN { $| = 1; print "1..8\n"; }
END {print "not ok 1\n" unless $loaded;}
use Carp;
# use blib;
@@ -15,7 +15,7 @@
use Config;
use lib 't';
-use TestUtils qw(result);
+use TestUtils qw(result $PERSONAL_FILE_NAME);
use vars qw($i $loaded $error);
use strict;
@@ -77,4 +77,116 @@
result($DOCUMENT_HANDLER->{elements} == 10);
result($DOCUMENT_HANDLER->{chars} == 141);
result($DOCUMENT_HANDLER->{ws} == 0);
+
+# test the overloaded parse version
+$SAX->parse($PERSONAL_FILE_NAME);
+result(1);
+
+
+# test the progressive parsing interface
+my $token = XML::Xerces::XMLPScanToken->new();
+$SAX->parseFirst($PERSONAL_FILE_NAME,$token);
+while ($SAX->parseNext($token)) {
+ # do nothing
+}
+result(1);
+
+
+
+# test that we can reuse the parse again and again
+$document = <<\END;
+<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
+
+<!-- @version: -->
+<personnel>
+
+ <person id="Big.Boss">
+ <name><family>Boss</family> <given>Big</given></name>
+ <email>chief@foo.com</email>
+ <link subordinates="one.worker two.worker three.worker four.worker five.worker"/>
+ </person>
+
+ <person id="one.worker">
+ <name><family>Worker</family> <given>One</given></name>
+ <email>one@foo.com</email>
+ <link manager="Big.Boss"/>
+ </person>
+
+ <foo id="two.worker">
+ <name><family>Worker</family> <given>Two</given></name>
+ <email>two@foo.com</email>
+ <link manager="Big.Boss"/>
+ </person>
+
+ <person id="three.worker">
+ <name><family>Worker</family> <given>Three</given></name>
+ <email>three@foo.com</email>
+ <link manager="Big.Boss"/>
+ </person>
+
+ <person id="four.worker">
+ <name><family>Worker</family> <given>Four</given></name>
+ <email>four@foo.com</email>
+ <link manager="Big.Boss"/>
+ </person>
+
+ <person id="five.worker">
+ <name><family>Worker</family> <given>Five</given></name>
+ <email>five@foo.com</email>
+ <link manager="Big.Boss"/>
+ </person>
+
+</personnel>
+END
+package MyErrorHandler;
+use strict;
+use vars qw(@ISA);
+@ISA = qw(XML::Xerces::PerlErrorHandler);
+sub warning {
+}
+
+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();
+}
+
+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();
+}
+1;
+
+package main;
+$token = XML::Xerces::XMLPScanToken->new();
+$SAX->setErrorHandler(MyErrorHandler->new());
+$::error = '';
+eval {
+ $SAX->parseFirst(XML::Xerces::MemBufInputSource->new($document),$token);
+ while ($SAX->parseNext($token)) {
+ # do nothing
+ }
+};
+result($::error);
+$::error = '';
+$SAX->parseReset($token);
+eval {
+ $SAX->parse(XML::Xerces::MemBufInputSource->new($document));
+};
+result($::error);
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org