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