#!/usr/bin/perl use strict; use warnings; use Test::More tests => 8; use XML::RSS; sub starts_with { local $Test::Builder::Level = $Test::Builder::Level + 1; my ($rss, $prefix, $msg) = @_; my $rss_output = $rss->as_string(); my $ok = is ( substr($rss_output, 0, length($prefix)-1), substr($prefix, 0, length($prefix)-1), $msg ); } sub create_rss_1 { my $args = shift; my @style = exists($args->{stylesheet}) ? (stylesheet => $args->{stylesheet}) : () ; my $rss = XML::RSS->new( version => $args->{version}, @style ); my $image_link = exists($args->{image_link}) ? $args->{image_link} : "http://freshmeat.net/"; my $extra_image_params = $args->{image_params} || []; $rss->channel( title => "freshmeat.net", link => "http://freshmeat.net", description => "the one-stop-shop for all your Linux software needs", ); $rss->image( title => "freshmeat.net", url => "0", link => $image_link, @{$extra_image_params}, ); $rss->add_item( title => "GTKeyboard 0.85", link => "http://freshmeat.net/news/1999/06/21/930003829.html" ); return $rss; } { # TEST starts_with( create_rss_1({'version' => "0.9"}), <<'EOF', "0.91"}), <<'EOF', EOF "header of RSS 0.9.1 without the stylesheet" ); } { # TEST starts_with( create_rss_1({'version' => "1.0"}), <<'EOF', "2.0"}), <<'EOF', "0.9", stylesheet => "http://myhost.tld/foo.xsl"}), <<'EOF', "0.91", stylesheet => "http://myhost.tld/foo.xsl"}), <<'EOF', EOF "header of RSS 0.9.1 with the stylesheet" ); } { # TEST starts_with( create_rss_1({'version' => "1.0", stylesheet => "http://myhost.tld/foo.xsl"}), <<'EOF', "2.0", stylesheet => "http://myhost.tld/foo.xsl"}), <<'EOF',