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 2003/11/10 19:15:13 UTC

svn commit: rev 115 - xml/xerces-p/trunk/t

Author: jasons
Date: Mon Nov 10 10:15:13 2003
New Revision: 115

Modified:
   xml/xerces-p/trunk/t/SAXParser.t
Log:
better use of Test::More
	few new tests

Modified: xml/xerces-p/trunk/t/SAXParser.t
==============================================================================
--- xml/xerces-p/trunk/t/SAXParser.t	(original)
+++ xml/xerces-p/trunk/t/SAXParser.t	Mon Nov 10 10:15:13 2003
@@ -7,9 +7,9 @@
 END {ok(0) unless $loaded;}
 
 use Carp;
-# use blib;
+use blib;
 use XML::Xerces;
-use Test::More tests => 8;
+use Test::More tests => 12;
 use Config;
 
 use lib 't';
@@ -56,25 +56,35 @@
   $self->{ws} += $len;
 }
 
+sub reset_document {
+  my ($self) = @_;
+  $self->{ws} = 0;
+  $self->{chars} = 0;
+  $self->{elements} = 0;
+}
+
 package main;
 my $SAX = XML::Xerces::SAXParser->new();
 my $DOCUMENT_HANDLER = MyDocumentHandler->new();
 my $ERROR_HANDLER = XML::Xerces::PerlErrorHandler->new();
-$DOCUMENT_HANDLER->{elements} = 0;
-$DOCUMENT_HANDLER->{chars} = 0;
-$DOCUMENT_HANDLER->{ws} = 0;
+
 $SAX->setDocumentHandler($DOCUMENT_HANDLER);
 $SAX->setErrorHandler($ERROR_HANDLER);
 
+# reset the counts
+$DOCUMENT_HANDLER->reset_document();
+
 $SAX->parse(XML::Xerces::MemBufInputSource->new($document, 'foo'));
-ok($DOCUMENT_HANDLER->{elements} == 10);
-ok($DOCUMENT_HANDLER->{chars} == 141);
-ok($DOCUMENT_HANDLER->{ws} == 0);
+ok($DOCUMENT_HANDLER->{elements} == 10,'elements');
+ok($DOCUMENT_HANDLER->{chars} == 141,'chars');
+ok($DOCUMENT_HANDLER->{ws} == 0,'ws');
 
 # test the overloaded parse version
 $SAX->parse($PERSONAL_FILE_NAME);
-ok(1);
+pass('successful parse');
 
+# reset the counts
+$DOCUMENT_HANDLER->reset_document();
 
 # test the progressive parsing interface
 my $token = XML::Xerces::XMLPScanToken->new();
@@ -82,9 +92,19 @@
 while ($SAX->parseNext($token)) {
   # do nothing
 }
-ok(1);
+pass('successful progressive parse');
+ok($DOCUMENT_HANDLER->{elements} == 37, 'element count after progressive parse');
 
+# reset the counts
+$DOCUMENT_HANDLER->reset_document();
 
+$token = XML::Xerces::XMLPScanToken->new();
+$SAX->parseFirst($PERSONAL_FILE_NAME,$token);
+while ($SAX->parseNext($token)) {
+  last if $DOCUMENT_HANDLER->{elements} == 10;
+}
+pass('early exit from progressive parse');
+ok($DOCUMENT_HANDLER->{elements} == 10, 'element count after early exit from progressive parse');
 
 # test that we can reuse the parse again and again
 $document = <<\END;
@@ -111,24 +131,6 @@
     <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;
@@ -175,11 +177,16 @@
     # do nothing
   }
 };
-ok($::error);
+ok($::error,'fatal error in progressive parse')
+  or diag("Here's the error: $@");
+
+# reset the state for a new parse
 $::error = '';
 $SAX->parseReset($token);
-eval {
-  $SAX->parse(XML::Xerces::MemBufInputSource->new($document));
-};
-ok($::error);
+$SAX->setErrorHandler(XML::Xerces::PerlErrorHandler->new());
+
+eval {$SAX->parse($PERSONAL_FILE_NAME)};
+ok((not $@),'successful parse after fatal error');
 
+eval {$SAX->parse(XML::Xerces::MemBufInputSource->new($document))};
+ok($@,'fatal error in parse');

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org