#!/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 => 11; } } { my $out; my $writer = XML::SAX::Writer->new( Output => \$out ); my $gen = XML::Generator::RSS10->new( Handler => $writer, pretty => 1, modules => [ qw( cc ) ], ); $gen->item( title => 'Item 1 title', link => 'http://example.com/foo1', cc => { license => 'http://creativecommons.org/licenses/by-nc-nd/2.0/' }, ); $gen->channel( title => 'Channel title', link => 'http://example.com/', description => 'a description', ); like( $out, qr{]*>.*}s, 'expect to find cc:license tag inside item tag' ); like( $out, qr{}s, 'expect to find cc:License tag' ); like( $out, qr{]+>.*}s, 'expect to find cc:prohibits CommercialUse cc:License tag' ); like( $out, qr{]+>.*}s, 'expect to find cc:permits Reproduction cc:License tag' ); like( $out, qr{]+>.*}s, 'expect to find cc:permits Distribution cc:License tag' ); like( $out, qr{]+>.*}s, 'expect to find cc:requires Attribution cc:License tag' ); like( $out, qr{]+>.*}s, 'expect to find cc:requires Notice cc:License tag' ); } { my $out; my $writer = XML::SAX::Writer->new( Output => \$out ); my $gen = XML::Generator::RSS10->new( Handler => $writer, pretty => 1, modules => [ qw( cc ) ], ); $gen->item( title => 'Item 1 title', link => 'http://example.com/foo1', cc => { license => 'http://creativecommons.org/licenses/by-nc-nd/2.0/' }, ); $gen->item( title => 'Item 2 title', link => 'http://example.com/foo2', cc => { license => 'http://creativecommons.org/licenses/by-nc-sa/2.0/' }, ); $gen->channel( title => 'Channel title', link => 'http://example.com/', description => 'a description', ); like( $out, qr{]*>.*}s, 'expect to find cc:license tag for by-nc-nd license inside item tag' ); like( $out, qr{]*>.*}s, 'expect to find cc:license tag for by-nc-sa license inside item tag' ); like( $out, qr{}s, 'expect to find cc:License for by-nc-nd tag' ); like( $out, qr{}s, 'expect to find cc:License for by-nc-sa tag' ); }