|
From: Grant M. <gr...@us...> - 2002-10-11 02:00:48
|
Update of /cvsroot/perl-xml/xml-filter-nsnormalise/t
In directory usw-pr-cvs1:/tmp/cvs-serv11705/t
Modified Files:
1_basic.t 2_more.t
Log Message:
- added better diagnostics to trap test failures
Index: 1_basic.t
===================================================================
RCS file: /cvsroot/perl-xml/xml-filter-nsnormalise/t/1_basic.t,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- 1_basic.t 10 Oct 2002 21:36:13 -0000 1.2
+++ 1_basic.t 11 Oct 2002 02:00:46 -0000 1.3
@@ -10,9 +10,62 @@
##############################################################################
-# Confirm that the module compiles
+# Print out a list of installed modules and their version numbers
#
+eval {
+
+ my @mod_list = qw(
+ XML::SAX XML::SAX::Writer XML::NamespaceSupport
+ );
+
+
+ # If XML::SAX is installed, add a list of installed SAX parsers
+
+ eval { require XML::SAX; };
+ my $default_parser = '';
+ unless($@) {
+ push @mod_list, map { $_->{Name} } @{XML::SAX->parsers()};
+ $default_parser = ref(XML::SAX::ParserFactory->parser());
+ }
+
+
+ # Extract the version number from each module
+
+ my(%version);
+ foreach my $module (@mod_list) {
+ eval " require $module; ";
+ unless($@) {
+ no strict 'refs';
+ $version{$module} = ${$module . '::VERSION'} || "Unknown";
+ }
+ }
+
+
+ # Add version number of the Perl binary
+
+ eval ' use Config; $version{perl} = $Config{version} '; # Should never fail
+ if($@) {
+ $version{perl} = $];
+ }
+ unshift @mod_list, 'perl';
+
+
+ # Print details of installed modules on STDERR
+
+ diag(sprintf("\r%-30s %s", 'Package', 'Version'));
+ foreach my $module (@mod_list) {
+ $version{$module} = 'Not Installed' unless(defined($version{$module}));
+ $version{$module} .= " (default parser)" if($module eq $default_parser);
+ printf STDERR " %-30s %s\n", $module, $version{$module};
+ }
+
+};
+
+
+##############################################################################
+# Confirm that the module compiles
+
use XML::Filter::NSNormalise
ok(1, 'XML::Filter::NSNormalise compiled OK');
@@ -47,7 +100,7 @@
);
};
-ok($@ =~ /Multiple URIs mapped to prefix 'dc'/, "Caught many to one mapping");
+like($@, qr/Multiple URIs mapped to prefix 'dc'/, "Caught many to one mapping");
##############################################################################
@@ -58,6 +111,6 @@
XML::Filter::NSNormalise->new();
};
-ok($@ =~ /No 'Map' option in call to XML::Filter::NSNormalise->new/,
+like($@, qr/No 'Map' option in call to XML::Filter::NSNormalise->new/,
"Caught missing 'Map' option");
Index: 2_more.t
===================================================================
RCS file: /cvsroot/perl-xml/xml-filter-nsnormalise/t/2_more.t,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- 2_more.t 10 Oct 2002 21:36:13 -0000 1.3
+++ 2_more.t 11 Oct 2002 02:00:46 -0000 1.4
@@ -63,6 +63,7 @@
my $p = XML::SAX::ParserFactory->parser(Handler => $filter);
ok(ref($p), 'Created a parser object');
+$@ = '';
eval {$p->parse_string(q{
<rdf:RDF
xmlns="http://purl.org/rss/1.0/"
@@ -72,7 +73,7 @@
</rdf:RDF>
});
};
-ok(!$@, 'Parsed with no errors');
+is($@, '', 'Parsed with no errors');
ok($xml =~ s{xmlns=('|")http://purl\.org/rss/1\.0/\1}{ATTR},
"Default namespace declaration untouched");
@@ -83,7 +84,7 @@
ok($xml =~ s{xmlns:dc=('|")http://purl.org/dc/elements/1.1/\1}{ATTR},
"DC namespace declaration mapped successfully");
-ok($xml =~ m{
+like($xml, qr{
^\s* # optional leading whitespace
<rdf:RDF\s+ATTR\s+ATTR\s+ATTR # root element with three ns attrs
\s*> # end the tag
@@ -110,6 +111,7 @@
my $p = XML::SAX::ParserFactory->parser(Handler => $filter);
+$@ = '';
eval {$p->parse_string(q{
<doc xmlns:alpha="companya.com" xmlns:beta="companyb.com">
<ignore>Does nothing</ignore>
@@ -118,7 +120,7 @@
</doc>
});
};
-ok(!$@, 'Parsed namespaced attributes with no errors');
+is($@, '', 'Parsed namespaced attributes with no errors');
ok($xml =~ s{xmlns:a=('|")companya.com\1}{ATTR},
"Company A namespace declaration mapped successfully");
@@ -136,7 +138,7 @@
ok($xml =~ s{\s+b:align=('|")right\1}{ ATTR_B},
"Company B namespaced attribute mapped successfully");
-ok($xml =~ m{
+like($xml, qr{
^\s* # optional leading whitespace
<doc\s+ATTR\s+ATTR\s*> # root element with two ns attrs
\s+<ignore>Does\snothing</ignore> # innocent bystander
@@ -164,6 +166,7 @@
my $p = XML::SAX::ParserFactory->parser(Handler => $filter);
+$@ = '';
eval {$p->parse_string(q{
<doc xmlns:alpha="companya.com" xmlns:a="aardvark.com">
<alpha:para>paragraph one</alpha:para>
@@ -172,7 +175,7 @@
});
};
-ok($@ =~ /Cannot map 'companya\.com' to 'a' - prefix already occurs in document/,
+like($@, qr/Cannot map 'companya\.com' to 'a' - prefix already occurs in document/,
'Caught attempt to map to a used prefix');
@@ -193,6 +196,7 @@
my $p = XML::SAX::ParserFactory->parser(Handler => $filter);
+$@ = '';
eval {$p->parse_string(q{
<doc xmlns:a="companya.com" xmlns:aa="aardvark.com">
<a:para>paragraph one</a:para>
@@ -201,7 +205,7 @@
});
};
-ok(!$@, 'Mapping to same prefix succeeded');
+is($@, '', 'Mapping to same prefix succeeded');
ok($xml =~ s{xmlns:a=('|")companya.com\1}{ATTR},
"Original 'a' prefix declaration mapped successfully to itself");
@@ -209,7 +213,7 @@
ok($xml =~ s{xmlns:aa=('|")aardvark.com\1}{ATTR},
"Original 'aa' prefix declaration survived unscathed");
-ok($xml =~ m{
+like($xml, qr{
^\s* # optional leading whitespace
<doc\s+ATTR\s+ATTR\s*> # root element with two ns attrs
\s+<a:para\s*>paragraph\sone</a:para>
@@ -236,13 +240,14 @@
my $p = XML::SAX::ParserFactory->parser(Handler => $filter);
+$@ = '';
eval {$p->parse_string(q{
<doc xmlns="companya.com">
<para>paragraph one</para>
</doc>
});
};
-ok(!$@, 'Parsed mapped default namespace with no errors');
+is($@, '', 'Parsed mapped default namespace with no errors');
ok($xml =~ s{xmlns=('|")companya.com\1}{ATTR},
"Default namespace declaration mapped successfully");
@@ -250,7 +255,7 @@
ok($xml =~ s{xmlns:a=('|")companya.com\1}{ATTR},
"Explicit namespace prefix declaration added");
-ok($xml =~ m{
+like($xml, qr{
^\s* # optional leading whitespace
<a:doc\s+ATTR\s+ATTR\s*> # root element with two ns attrs
\s+<a:para\s*>paragraph\sone</a:para>
@@ -276,6 +281,7 @@
my $p = XML::SAX::ParserFactory->parser(Handler => $filter);
+$@ = '';
eval {$p->parse_string(q{
<doc xmlns="companya.com">
<para>paragraph one</para>
@@ -288,7 +294,7 @@
</doc>
});
};
-ok(!$@, 'Parsed nested default namespaces with no errors');
+is($@, '', 'Parsed nested default namespaces with no errors');
ok($xml =~ s{xmlns=('|")companya.com\1}{ATTR_A},
"Default namespace declaration mapped successfully");
@@ -304,9 +310,8 @@
ok($xml =~ s{xmlns=('|")companyc.com\1}{ATTR_C},
"Default namespace declaration mapped successfully");
-#print "$xml\n";
-ok($xml =~ m{
+like($xml, qr{
^\s* # optional leading whitespace
<a:doc\s+ATTR_A\s+ATTR_A\s*> # root element with two ns attrs
\s+<a:para\s*>paragraph\sone</a:para>
|