#!/usr/bin/perl -w
use Test;
unless (eval "use XML::DOM; 1;") {
print "1..0 # Skipped: XML::DOM not installed\n";
exit;
}
plan tests => 35;
require XML::Generator::DOM;
my $x = new XML::Generator::DOM;
ok($x);
my $xml = $x->foo();
ok($xml->toString, '');
$xml = $x->bar(42);
ok($xml->toString, '42');
$xml = $x->baz({'foo'=>3});
ok($xml->toString, '');
$xml = $x->bam({'bar'=>42},$x->foo(),"qux");
ok($xml->toString, 'qux');
$xml = $x->new(3);
ok($xml->toString, '3');
$xml = $x->foo(['baz']);
ok($xml->toString, '');
$xml = $x->foo(['baz'],{'bar'=>42},3);
ok($xml->toString, '3');
$xml = $x->foo({'id' => 4}, 3, 5);
ok($xml->toString, '35');
$xml = $x->foo({'id' => 4}, 0, 5);
ok($xml->toString, '05');
$xml = $x->foo({'id' => 4}, 3, 0);
ok($xml->toString, '30');
my $foo_bar = "foo-bar";
$xml = $x->$foo_bar(42);
ok($xml->toString, '42');
$x = new XML::Generator::DOM 'namespace' => ['A'];
$xml = $x->foo({'bar' => 42}, $x->bar(['B'], {'bar' => 54}));
ok($xml->toString, '');
$xml = $x->xmldecl();
ok(UNIVERSAL::isa($xml, 'XML::DOM::XMLDecl'));
ok($xml->getVersion, '1.0');
ok($xml->getStandalone, 'yes');
$xml = $x->xmlcmnt("test");
ok(UNIVERSAL::isa($xml, 'XML::DOM::Comment'));
ok($xml->getData, 'test');
$x = new XML::Generator::DOM
'version' => '1.1',
'encoding' => 'iso-8859-2';
$xml = $x->xmldecl();
ok($xml->getVersion, '1.1');
ok($xml->getEncoding, 'iso-8859-2');
$xml = $x->xmlpi("target", 'option="value"');
ok(UNIVERSAL::isa($xml, 'XML::DOM::ProcessingInstruction'));
ok($xml->getTarget, 'target');
ok($xml->getData, 'option="value"');
eval {
my $t = "42";
$x->$t();
};
ok(UNIVERSAL::isa($@, 'XML::DOM::DOMException'));
$xml = $x->foo(['bar'], {'baz:foo' => 'qux', 'fob' => 'gux'});
ok($xml->toString eq '' ||
$xml->toString eq '');
$x = new XML::Generator::DOM 'dtd' => [ 'foo', 'SYSTEM', '"http://foo.com/foo"' ];
$xml = $x->xmldecl();
ok($xml->getStandalone, 'no');
$xml = $x->xmlcdata("test");
ok(UNIVERSAL::isa($xml, 'XML::DOM::CDATASection'));
ok($xml->getData, 'test');
$x = new XML::Generator::DOM;
$xml = $x->foo($x->xmlcdata("bar"), $x->xmlpi("baz", "bam"));
ok($xml->toString, '');
$xml = $x->foo(42);
$xml = $x->xml($xml);
ok($xml->toString,
'
42
');
eval {
$xml = $x->bar($xml);
};
ok($@);
ok($@->getName, 'WRONG_DOCUMENT_ERR');
$xml = $x->foo();
$cmnt = $x->xmlcmnt("comment");
$pi = $x->xmlpi("foo", "bar");
$xml = $x->xml($cmnt, $xml, $pi);
ok($xml->toString, '
');
require XML::DOM;
$doc = XML::DOM::Parser->new->parse('');
$x = XML::Generator::DOM->new( dom_document => $doc );
$doc->getFirstChild->appendChild($x->foo(42));
ok($doc->toString,
'42
');
eval {
$xml = $x->xml($x->bar(12));
};
ok($@ =~ /method not allowed/);