1 |
dpavlin |
1 |
use strict; |
2 |
|
|
use Test::More; |
3 |
|
|
|
4 |
|
|
plan 'no_plan'; |
5 |
|
|
|
6 |
|
|
use XML::Feed; |
7 |
|
|
|
8 |
|
|
my $feed = XML::Feed->new('Atom'); |
9 |
|
|
$feed->title("foo"); |
10 |
|
|
$feed->description("Atom 1.0 feed"); |
11 |
|
|
$feed->link("http://example.org/"); |
12 |
|
|
|
13 |
|
|
my $entry = XML::Feed::Entry->new('Atom'); |
14 |
|
|
$entry->title("1st Entry"); |
15 |
|
|
$entry->link("http://example.org/"); |
16 |
|
|
$entry->category("blah"); |
17 |
|
|
$entry->content("<p>Hello world.</p>"); |
18 |
|
|
|
19 |
|
|
$feed->add_entry($entry); |
20 |
|
|
|
21 |
|
|
my $xml = $feed->as_xml; |
22 |
|
|
like $xml, qr!<feed xmlns="http://www.w3.org/2005/Atom"!; |
23 |
|
|
like $xml, qr!<content .*type="xhtml">!; |
24 |
|
|
like $xml, qr!<div xmlns="http://www.w3.org/1999/xhtml">!; |
25 |
|
|
|
26 |
|
|
# roundtrip |
27 |
|
|
$feed = XML::Feed->parse(\$xml); |
28 |
|
|
is $feed->format, 'Atom'; |
29 |
|
|
is $feed->title, "foo"; |
30 |
|
|
is $feed->description, "Atom 1.0 feed"; |
31 |
|
|
is $feed->link, "http://example.org/"; |
32 |
|
|
|
33 |
|
|
my @entries = $feed->entries; |
34 |
|
|
is @entries, 1; |
35 |
|
|
$entry = $entries[0]; |
36 |
|
|
|
37 |
|
|
is $entry->title, '1st Entry'; |
38 |
|
|
is $entry->link, 'http://example.org/'; |
39 |
|
|
is $entry->category, 'blah'; |
40 |
|
|
is $entry->content->type, 'text/html'; |
41 |
|
|
like $entry->content->body, qr!\s*<p>Hello world.</p>\s*!s; |
42 |
|
|
|
43 |
|
|
|
44 |
|
|
|