First cut at enclosures
[catagits/XML-Feed.git] / t / 13-enclosures.t
1 #!perl -w
2
3 use strict;
4 use Test::More; 
5 use XML::Feed;
6 use XML::Feed::Enclosure;
7
8 my @formats = qw(atom rss20);
9 plan tests => scalar(@formats)*22;
10
11 foreach my $format (@formats) {
12     ok (my $feed      = XML::Feed->parse("t/samples/$format-enclosure.xml"), "Parsed $format");
13     my ($entry)       = $feed->entries;
14     ok (my $enclosure = $entry->enclosure,                                   "Got enclosure");
15     ok ($enclosure->isa("XML::Feed::Enclosure"),                             "Object isa XML::Feed::Enclosure");
16     is ($enclosure->type,   "audio/mpeg",                                    "Got the enclosure mime type");
17     is ($enclosure->length, "2478719",                                       "Got enclosure length");
18     is ($enclosure->url,    "http://example.com/sample_podcast.mp3",         "Got enclosure url");
19
20     ok (my $tmp       = XML::Feed::Enclosure->new({ type => "image/jpeg" }), "Created a new enclosure");
21     is ($tmp->type,         "image/jpeg",                                    "Got type back");
22     ok ($tmp->url("http://example.com/sample_image.jpg"),                    "Set url");
23     ok ($tmp->length("1337"),                                                "Set length");
24     ok ($entry->enclosure($tmp),                                             "Set the enclosure");
25
26     ok ($enclosure    = $entry->enclosure,                                   "Got enclosure again");
27     ok ($enclosure->isa("XML::Feed::Enclosure"),                             "Object still isa XML::Feed::Enclosure");
28     is ($enclosure->type,   "image/jpeg",                                    "Got the enclosure mime type");
29     is ($enclosure->length, "1337",                                          "Got enclosure length again");
30     is ($enclosure->url,    "http://example.com/sample_image.jpg",           "Got enclosure url again");
31
32     my $xml = $feed->as_xml;
33     ok ($feed         = XML::Feed->parse(\$xml),                             "Parsed xml again");
34     ok ($enclosure    = $entry->enclosure,                                   "Got enclosure again");
35     ok ($enclosure->isa("XML::Feed::Enclosure"),                             "Object still isa XML::Feed::Enclosure");
36     is ($enclosure->type,   "image/jpeg",                                    "Got the enclosure mime type");
37     is ($enclosure->length, "1337",                                          "Got enclosure length again");
38     is ($enclosure->url,    "http://example.com/sample_image.jpg",           "Got enclosure url again");
39
40
41 }