#!/usr/bin/perl -w use strict; use XML::Generator::RSS10; use Test::More; BEGIN { eval { require XML::SAX::Writer }; if ($@) { plan skip_all => 'Cannot run tests without XML::SAX::Writer.'; } else { plan tests => 4; } } { my $out; my $writer = XML::SAX::Writer->new( Output => \$out ); my $gen = XML::Generator::RSS10->new( Handler => $writer, pretty => 1, modules => [ qw( admin dc sy ) ], ); $gen->item( title => 'Item 1 title', link => 'http://example.com/foo1', dc => { publisher => 'Test Publisher' }, ); $gen->item( title => 'Item 2 title', link => 'http://example.com/foo2', description => 'Item 2 description', dc => { creator => 'The Somewhat Mighty' }, ); $gen->channel( title => 'Channel title', link => 'http://example.com/', description => 'a description', sy => { updatePeriod => 'yearly' }, admin => { errorReportsTo => 'yomama@example.com' }, ); like( $out, qr{]+>.*Test Publisher.*}s, 'expect to find dc:publisher tag inside item tag for item 1' ); like( $out, qr{]+>.*The Somewhat Mighty.*}s, 'expect to find dc:creator tag inside item tag for item 2' ); like( $out, qr{]+>.*yearly.*}s, 'expect to find dc:creator tag inside channel tag' ); like( $out, qr{]+>.*}s, 'expect to find dc:creator tag inside channel tag' ); }