=== t/enclosures.t
==================================================================
--- t/enclosures.t (revision 333)
+++ t/enclosures.t (revision 334)
@@ -0,0 +1,48 @@
+use strict;
+use Test::More;
+
+use constant RSS_VERSION => "2.0";
+use constant RSS_CHANNEL_TITLE => "Example 2.0 Channel";
+
+use constant RSS_DOCUMENT => qq(<?xml version="1.0"?>
+<rss version="2.0">
+ <channel>
+ <title>Example 2.0 Channel</title>
+ <link>
http://example.com/</link>
+ <description>To lead by example</description>
+ <language>en-us</language>
+ <copyright>All content Public Domain, except comments which remains copyright the author</copyright>
+ <managingEditor>editor\@example.com</managingEditor>
+ <webMaster>webmaster\@example.com</webMaster>
+ <docs>
http://backend.userland.com/rss</docs>
+ <category domain="
http://www.dmoz.org">Reference/Libraries/Library_and_Information_Science/Technical_Services/Cataloguing/Metadata/RDF/Applications/RSS/</category>
+ <generator>The Superest Dooperest RSS Generator</generator>
+ <lastBuildDate>Mon, 02 Sep 2002 03:19:17 GMT</lastBuildDate>
+ <ttl>60</ttl>
+
+ <item>
+ <title>News for September the Second</title>
+ <link>
http://example.com/2002/09/02</link>
+ <description>other things happened today</description>
+ <comments>
http://example.com/2002/09/02/comments.html</comments>
+ <author>joeuser\@example.com</author>
+ <pubDate>Mon, 02 Sep 2002 03:19:00 GMT</pubDate>
+ <guid isPermaLink="true">
http://example.com/2002/09/02</guid>
+ <enclosure url="
http://example.com/test.mp3" length="5352283" type="audio/mpeg" />
+ </item>
+
+ </channel>
+</rss>);
+
+plan tests => 4;
+
+use_ok("XML::RSS");
+
+my $xml = XML::RSS->new();
+isa_ok($xml,"XML::RSS");
+
+eval { $xml->parse(RSS_DOCUMENT); };
+is($@,'',"Parsed RSS feed");
+
+is_deeply($xml->{items}->[0]->{enclosure}, { url => "
http://example.com/test.mp3", length => "5352283", type => "audio/mpeg" }, "got enclosure");
+
=== t/test_manifest
==================================================================
--- t/test_manifest (revision 333)
+++ t/test_manifest (revision 334)
@@ -10,5 +10,6 @@
2.0-permalink.t
2.0-wo-title.t
encode-output.t
+enclosures.t
auto_add_modules.t
rss2-gt-encoding.t
=== MANIFEST
==================================================================
--- MANIFEST (revision 333)
+++ MANIFEST (revision 334)
@@ -41,6 +41,7 @@
t/2.0-permalink.t
t/2.0-wo-title.t
t/auto_add_modules.t
+t/enclosures.t
t/encode-output.t
t/encoding.t
t/load.t
=== lib/XML/RSS.pm
==================================================================
--- lib/XML/RSS.pm (revision 333)
+++ lib/XML/RSS.pm (revision 334)
@@ -416,6 +416,10 @@
};
}
+my %empty_ok_elements = (
+ enclosure => 1,
+);
+
sub new {
my $class = shift;
@@ -1487,7 +1491,7 @@
my $self = shift;
my $el = shift;
my %attribs = @_;
-
+
# beginning of RSS 0.91
if ($el eq 'rss') {
if (exists($attribs{version})) {
@@ -1610,6 +1614,10 @@
}
}
}
+ elsif ( $empty_ok_elements{$el} and $self->current_element eq 'item' )
+ {
+ $self->{items}->[$self->{num_items}-1]->{$el} = \%attribs;
+ }
}
sub append {