# $Id: 24c14n.t,v 1.1.1.1 2004/05/20 17:55:25 jpetri Exp $
##
# these testcases are for xml canonization interfaces.
#
use Test;
use strict;
BEGIN { plan tests => 13 };
use XML::LibXML;
use XML::LibXML::Common qw(:libxml);
my $parser = XML::LibXML->new;
{
my $doc = $parser->parse_string( " " );
my $c14n_res = $doc->toStringC14N();
ok( $c14n_res, " " );
$c14n_res = $doc->toStringC14N(1);
ok( $c14n_res, " " );
}
{
my $doc = $parser->parse_string( 'e&f<]]> ' );
my $c14n_res = $doc->toStringC14N();
ok( $c14n_res, ' >e&f< ' );
$c14n_res = $doc->toStringC14N(1);
ok( $c14n_res, ' >e&f< ' );
}
{
my $doc = $parser->parse_string( '' );
my $c14n_res;
$c14n_res = $doc->toStringC14N(0);
ok( $c14n_res, '' );
}
{
my $doc = $parser->parse_string( '' );
my $c14n_res;
$c14n_res = $doc->toStringC14N(0);
ok( $c14n_res, '' );
}
# ----------------------------------------------------------------- #
# The C14N says: remove unused namespaces, libxml2 just orders them
# ----------------------------------------------------------------- #
{
my $doc = $parser->parse_string( '' );
my $c14n_res;
$c14n_res = $doc->toStringC14N(0);
ok( $c14n_res, '' );
# would be correct, but will not work.
# ok( $c14n_res, '' );
}
# ----------------------------------------------------------------- #
# The C14N says: remove redundant namespaces
# ----------------------------------------------------------------- #
{
my $doc = $parser->parse_string( '' );
my $c14n_res;
$c14n_res = $doc->toStringC14N(0);
ok( $c14n_res, '' );
}
{
my $doc = $parser->parse_string( '' );
my $c14n_res;
$c14n_res = $doc->toStringC14N(0);
ok( $c14n_res, '' );
}
{
my $doc = $parser->parse_string( <
EOX
my $c14n_res;
$c14n_res = $doc->toStringC14N(0);
ok( $c14n_res, '' );
}
print "# canonize with xpath expressions\n";
{
my $doc = $parser->parse_string( <
EOX
my $c14n_res;
$c14n_res = $doc->toStringC14N(0, "//d" );
ok( $c14n_res, '' );
}
{
my $doc = $parser->parse_string( <
EOX
my $rootnode = $doc->documentElement;
my $c14n_res;
$c14n_res = $rootnode->toStringC14N(0, "//d" );
ok( $c14n_res, '' );
$rootnode = $doc->documentElement->firstChild;
$c14n_res = $rootnode->toStringC14N(0);
ok( $c14n_res, '' );
}