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 2005/12/03 16:43:50 UTC

svn commit: r351962 - in /xerces/xerces-p/trunk/t: 00basic.t 00core.t

Author: jasons
Date: Sat Dec  3 07:43:44 2005
New Revision: 351962

URL: http://svn.apache.org/viewcvs?rev=351962&view=rev
Log:
new tests


Added:
    xerces/xerces-p/trunk/t/00basic.t
    xerces/xerces-p/trunk/t/00core.t

Added: xerces/xerces-p/trunk/t/00basic.t
URL: http://svn.apache.org/viewcvs/xerces/xerces-p/trunk/t/00basic.t?rev=351962&view=auto
==============================================================================
--- xerces/xerces-p/trunk/t/00basic.t (added)
+++ xerces/xerces-p/trunk/t/00basic.t Sat Dec  3 07:43:44 2005
@@ -0,0 +1,118 @@
+# use blib;
+use XML::Xerces;
+use Cwd;
+use Test::More tests => 19;
+use lib 't';
+use TestUtils qw(
+		 $SYSTEM_RESOLVER_FILE_NAME
+		);
+
+pass("loaded");
+
+  # NOTICE: We must now explicitly call XMLPlatformUtils::Initialize()
+  #   when the module is loaded. Xerces.pm no longer does this.
+  #
+  #
+XML::Xerces::XMLPlatformUtils::Initialize();
+
+my $parser = XML::Xerces::XercesDOMParser->new();
+isa_ok($parser,'XML::Xerces::XercesDOMParser');
+
+my $ERROR_HANDLER = XML::Xerces::PerlErrorHandler->new();
+isa_ok($ERROR_HANDLER,'XML::Xerces::PerlErrorHandler');
+
+$parser->setErrorHandler($ERROR_HANDLER);
+my $tmp = $parser->getErrorHandler();
+isa_ok($tmp,'XML::Xerces::ErrorHandler');
+
+my $cwd = cwd();
+$cwd =~ s|/t/?$||;
+my $SAMPLE_DIR = "$cwd/samples";
+my $PERSONAL_FILE_NAME = "$SAMPLE_DIR/personal.xml";
+my $PERSONAL_INVALID_FILE_NAME = "$SAMPLE_DIR/personal-invalid.xml";
+my $PERSONAL_NOT_WELL_FORMED_FILE_NAME = "$SAMPLE_DIR/personal-not-well-formed.xml";
+
+$parser->setValidationScheme($XML::Xerces::AbstractDOMParser::Val_Never);
+$tmp = $parser->getValidationScheme();
+ok($tmp == $XML::Xerces::AbstractDOMParser::Val_Never,
+  '{s,g}etValidationScheme to off');
+
+$parser->parse($PERSONAL_FILE_NAME);
+pass("parse valid file with validation off");
+
+eval{$parser->parse($PERSONAL_INVALID_FILE_NAME)};
+ok(!$@,
+  "parse succeeds: validation = off, file = invalid");
+
+eval{$parser->parse($PERSONAL_NOT_WELL_FORMED_FILE_NAME)};
+ok($@,
+  "parse succeeds: validation = off, file = not-well-formed");
+
+$parser = XML::Xerces::XercesDOMParser->new();
+isa_ok($parser,'XML::Xerces::XercesDOMParser');
+
+$parser->setValidationScheme($XML::Xerces::AbstractDOMParser::Val_Always);
+$tmp = $parser->getValidationScheme();
+ok($tmp == $XML::Xerces::AbstractDOMParser::Val_Always,
+  '{s,g}etValidationScheme to on');
+
+$parser->setErrorHandler($ERROR_HANDLER);
+
+eval{$parser->parse($PERSONAL_INVALID_FILE_NAME)};
+ok($@,
+  "parse fails: validation = on, file = invalid");
+
+eval{$parser->parse($PERSONAL_NOT_WELL_FORMED_FILE_NAME)};
+ok($@,
+  "parse fails: validation = on, file = not-well-formed");
+
+# see if we can create and set an entity resolver
+$parser = XML::Xerces::XercesDOMParser->new();
+
+my $res = eval{XML::Xerces::XMLCatalogResolver->new("$SAMPLE_DIR/catalog.xml")};
+XML::Xerces::error($@) if $@;
+isa_ok($res,'XML::Xerces::PerlEntityResolver');
+$parser->setEntityResolver($res);
+pass("set XMLCatalogResolver");
+eval {
+  $parser->parse($SYSTEM_RESOLVER_FILE_NAME);
+};
+if ($@) {
+  print STDERR $@->getMessage()
+    if ref $@;
+  print STDERR $@;
+}
+ok(! $@,
+   "entity resolver invoked");
+
+my $ENTITY_RESOLVER = TestUtils->new();
+$parser->setEntityResolver($ENTITY_RESOLVER);
+
+# now lets see if the resolver gets invoked
+eval {
+  $parser->parse($SYSTEM_RESOLVER_FILE_NAME);
+};
+if ($@) {
+  print STDERR $@->getMessage()
+    if ref $@;
+  print STDERR $@;
+}
+ok($::test, "entity resolver invoked");
+
+
+# Test that the document is being remembered
+my $doc = $parser->getDocument();
+isa_ok($doc,"XML::Xerces::DOMDocument");
+ok(exists($XML::Xerces::REMEMBER{tied(%{$doc})}->{__PARSER}),
+   "document is remembered");
+$doc->DESTROY();
+ok(! exists($XML::Xerces::REMEMBER{tied(%{$doc})}->{__PARSER}),
+   "document is forgotten");
+
+END {
+  # NOTICE: We must now explicitly call XMLPlatformUtils::Terminate()
+  #   when the module is unloaded. Xerces.pm no longer does this for us
+  #
+  #
+  XML::Xerces::XMLPlatformUtils::Terminate();
+}

Added: xerces/xerces-p/trunk/t/00core.t
URL: http://svn.apache.org/viewcvs/xerces/xerces-p/trunk/t/00core.t?rev=351962&view=auto
==============================================================================
--- xerces/xerces-p/trunk/t/00core.t (added)
+++ xerces/xerces-p/trunk/t/00core.t Sat Dec  3 07:43:44 2005
@@ -0,0 +1,55 @@
+# Before `make install' is performed this script should be runnable
+# with `make test'. After `make install' it should work as `perl
+# XercesDOMParser.t'
+
+######################### We start with some black magic to print on failure.
+
+END {fail("module loaded") unless $loaded;}
+
+use Carp;
+# use blib;
+use Test::More tests => 2;
+use XML::Xerces;
+
+use lib 't';
+use TestUtils qw($PERSONAL_FILE_NAME $PERSONAL_NO_DOCTYPE $PERSONAL $DOM);
+use vars qw($loaded);
+use strict;
+
+$loaded = 1;
+pass("module loaded");
+
+  # NOTICE: We must now explicitly call XMLPlatformUtils::Initialize()
+  #   when the module is loaded. Xerces.pm no longer does this.
+  #
+  #
+XML::Xerces::XMLPlatformUtils::Initialize();
+
+######################### End of black magic.
+
+my $document = q[<?xml version="1.0" encoding="UTF-8"?>
+<contributors>
+	<person Role="manager">
+		<name>Mike Pogue</name>
+		<email>mpogue@us.ibm.com</email>
+	</person>
+	<person Role="developer">
+		<name>Tom Watson</name>
+		<email>rtwatson@us.ibm.com</email>
+	</person>
+	<person Role="tech writer">
+		<name>Susan Hardenbrook</name>
+		<email>susanhar@us.ibm.com</email>
+	</person>
+</contributors>];
+
+my $parser = XML::Xerces::XercesDOMParser->new();
+isa_ok($parser,"XML::Xerces::AbstractDOMParser");
+
+END {
+  # NOTICE: We must now explicitly call XMLPlatformUtils::Terminate()
+  #   when the module is unloaded. Xerces.pm no longer does this for us
+  #
+  #
+  XML::Xerces::XMLPlatformUtils::Terminate();
+}



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