#! /usr/local/bin/perl
use strict;
use XML::Dumper;
use Test::Harness;
BEGIN { $| = 1; print "1..6\n"; }
my $dump = new XML::Dumper;
my $perl;
my $xml;
my $xml_dump;
# ===== TEST 1: HANDLE SCALAR LITERALS
# Bug submitted 11/20/02 by Niels Vetger
my $perl = \"020525264";
if( eval{ $dump->pl2xml( $perl ) } && not $@ ) {
print "ok 1\n";
} else {
print "not ok 1\n";
}
# ===== TEST 2: HANDLE UNDEF() CORRECTLY
# Bug submitted 11/26/02 by Peter S. May
$xml = '
- Foo
-
- Bar
';
$perl = $dump->xml2pl( $xml );
$xml_dump = $dump->pl2xml( $perl );
if( xml_compare( $xml, $xml_dump ) ) {
print "ok 2\n";
} else {
print "not ok 2\n";
}
# ===== TEST 3: UNDEF() DATA FOR ARRAYS
$xml = '
- Foo
-
- Bar
';
$perl = $dump->xml2pl( $xml );
$xml_dump = $dump->pl2xml( $perl );
if( xml_compare( $xml, $xml_dump ) ) {
print "ok 3\n";
} else {
print "not ok 3\n";
}
# ===== TEST 4: UNDEF() DATA FOR HASHES
$xml = '
- Foo
-
- Bar
';
$perl = $dump->xml2pl( $xml );
$xml_dump = $dump->pl2xml( $perl );
if( xml_compare( $xml, $xml_dump ) ) {
print "ok 4\n";
} else {
print "not ok 4\n";
}
# ===== TEST 5: FUNCTIONAL VERSION
# Complaint mentioned on Perl Monks by crazyinsomniac
$perl = xml2pl( $xml );
$xml_dump = pl2xml( $perl );
if( xml_compare( $xml, $xml_dump ) ) {
print "ok 5\n";
} else {
print "not ok 5\n";
}
# ===== TEST 6: DTD
my $xml_dump_with_dtd;
$dump->dtd();
$perl = $dump->xml2pl( $xml );
$xml_dump_with_dtd = $dump->pl2xml( $perl );
$perl = $dump->xml2pl( $xml_dump );
$dump->dtd( 0 );
$xml_dump = $dump->pl2xml( $perl );
if( xml_compare( $xml_dump_with_dtd, $xml )) {
print "ok 6\n";
} else {
print "not ok 6\n";
}