use strict;
use Test::More;
use constant RSS_VERSION => "2.0";
use constant RSS_ENCLOSURE_URL => qq(http://www.scripting.com/mp3s/weatherReportSuite.mp3);
use constant RSS_ENCLOSURE_LENGTH => qq(12216320);
use constant RSS_ENCLOSURE_TYPE => qq(audio/mpeg);
use constant RSS_DOCUMENT => qq(
Example 2.0 Channel with Enclosure sub-element of Item
http://example.com/
To lead by exampleen-usAll content Public Domain, except comments which remains copyright the authoreditor\@example.comwebmaster\@example.comhttp://backend.userland.com/rssReference/Libraries/Library_and_Information_Science/Technical_Services/Cataloguing/Metadata/RDF/Applications/RSS/The Superest Dooperest RSS GeneratorMon, 02 Sep 2002 03:19:17 GMT60News for September the Second
http://example.com/2002/09/02
other things happened todayhttp://example.com/2002/09/02/comments.htmljoeuser\@example.comMon, 02 Sep 2002 03:19:00 GMThttp://example.com/2002/09/02);
plan tests => 8;
use_ok("XML::RSS");
my $xml = XML::RSS->new();
isa_ok($xml,"XML::RSS");
eval { $xml->parse(RSS_DOCUMENT); };
is($@,'',"Parsed RSS feed");
cmp_ok($xml->{'_internal'}->{'version'},"eq",RSS_VERSION,"Is RSS version ".RSS_VERSION);
cmp_ok(ref($xml->{items}),"eq","ARRAY","\$xml->{items} is an ARRAY ref");
if($xml->{items} && ref($xml->{items}) eq 'ARRAY'){
my $item = shift @{$xml->{items}};
if($item->{enclosure} && ref($item->{enclosure}) eq 'HASH'){
my $encl = $item->{enclosure};
cmp_ok($encl->{'url'},"eq",RSS_ENCLOSURE_URL, "ENCLOSURE URL is ".RSS_ENCLOSURE_URL);
cmp_ok($encl->{'length'},"eq",RSS_ENCLOSURE_LENGTH, "ENCLOSURE URL is ".RSS_ENCLOSURE_LENGTH);
cmp_ok($encl->{'type'},"eq",RSS_ENCLOSURE_TYPE, "ENCLOSURE URL is ".RSS_ENCLOSURE_TYPE);
}else{
ok(0,"Parsing Enclosure element, sub-element of Item");
}
}
__END__
=head1 NAME
enclosures2.t - tests for parsing RSS 2.0 data with XML::RSS.pm
=head1 SYNOPSIS
use Test::Harness qw (runtests);
runtests (./XML-RSS/t/*.t);
=head1 DESCRIPTION
Tests for parsing RSS 2.0 data with XML::RSS.pm
L
=head1 AUTHOR
Aaron Straup Cope
=head1 SEE ALSO
http://backend.userland.com/rss2
=cut