diff options
-rw-r--r-- | INSTALL | 6 | ||||
-rwxr-xr-x | ci/deps.perl | 2 | ||||
-rw-r--r-- | t/cgi.t | 13 | ||||
-rw-r--r-- | t/feed.t | 36 | ||||
-rw-r--r-- | t/psgi_v2.t | 10 |
5 files changed, 37 insertions, 30 deletions
@@ -174,9 +174,9 @@ Optional packages testing and development: pkg: perl5 rpm: perl-Test-Simple -- XML::Feed deb: libxml-feed-perl - pkg: p5-XML-Feed - rpm: perl-XML-Feed +- XML::TreePP deb: libxml-treepp-perl + pkg: p5-XML-TreePP + rpm: perl-XML-TreePP standard MakeMaker installation (Perl) -------------------------------------- diff --git a/ci/deps.perl b/ci/deps.perl index 5ecf9c9f..b960089f 100755 --- a/ci/deps.perl +++ b/ci/deps.perl @@ -50,7 +50,7 @@ my $profiles = { # optional developer stuff devtest => [ qw( - XML::Feed + XML::TreePP curl w3m ) ], @@ -121,18 +121,19 @@ EOF SKIP: { skip 'DBD::SQLite not available', 2 }; } - my $have_xml_feed = eval { require XML::Feed; 1 } if $indexed; - if ($have_xml_feed) { + my $have_xml_treepp = eval { require XML::TreePP; 1 } if $indexed; + if ($have_xml_treepp) { $path = "/test/blahblah\@example.com/t.atom"; $res = cgi_run($path); like($res->{head}, qr/^Status: 200 /, "atom returned 200"); like($res->{head}, qr!^Content-Type: application/atom\+xml!m, "search returned atom"); - my $p = XML::Feed->parse(\($res->{body})); - is($p->format, "Atom", "parsed atom feed"); - is(scalar $p->entries, 3, "parsed three entries"); + my $t = XML::TreePP->new->parse($res->{body}); + is(scalar @{$t->{feed}->{entry}}, 3, "parsed three entries"); + like($t->{feed}->{-xmlns}, qr/\bAtom\b/, + 'looks like an an Atom feed'); } else { - SKIP: { skip 'DBD::SQLite or XML::Feed missing', 2 }; + SKIP: { skip 'DBD::SQLite or XML::TreePP missing', 2 }; } } @@ -7,7 +7,7 @@ use Email::MIME; use PublicInbox::Feed; use PublicInbox::Import; use PublicInbox::Inbox; -my $have_xml_feed = eval { require XML::Feed; 1 }; +my $have_xml_treepp = eval { require XML::TreePP; 1 }; use PublicInbox::TestCommon; sub string_feed { @@ -79,12 +79,14 @@ EOF { my $feed = string_feed({ -inbox => $ibx }); SKIP: { - skip 'XML::Feed missing', 2 unless $have_xml_feed; - my $p = XML::Feed->parse(\$feed); - is($p->format, "Atom", "parsed atom feed"); - is(scalar $p->entries, 3, "parsed three entries"); - is($p->id, 'mailto:test@example', - "id is set to default"); + skip 'XML::TreePP missing', 3 unless $have_xml_treepp; + my $t = XML::TreePP->new->parse($feed); + like($t->{feed}->{-xmlns}, qr/\bAtom\b/, + 'looks like an an Atom feed'); + is(scalar @{$t->{feed}->{entry}}, 3, + 'parsed three entries'); + is($t->{feed}->{id}, 'mailto:test@example', + 'id is set to default'); } like($feed, qr/drop me/, "long quoted text kept"); @@ -111,10 +113,12 @@ EOF { my $spammy_feed = string_feed({ -inbox => $ibx }); SKIP: { - skip 'XML::Feed missing', 2 unless $have_xml_feed; - my $p = XML::Feed->parse(\$spammy_feed); - is($p->format, "Atom", "parsed atom feed"); - is(scalar $p->entries, 3, "parsed three entries"); + skip 'XML::TreePP missing', 2 unless $have_xml_treepp; + my $t = XML::TreePP->new->parse($spammy_feed); + like($t->{feed}->{-xmlns}, qr/\bAtom\b/, + 'looks like an an Atom feed'); + is(scalar @{$t->{feed}->{entry}}, 3, + 'parsed three entries'); } like($spammy_feed, qr/SPAM/s, "spam showed up :<"); } @@ -127,10 +131,12 @@ EOF { my $feed = string_feed({ -inbox => $ibx }); SKIP: { - skip 'XML::Feed missing', 2 unless $have_xml_feed; - my $p = XML::Feed->parse(\$feed); - is($p->format, "Atom", "parsed atom feed"); - is(scalar $p->entries, 3, "parsed three entries"); + skip 'XML::TreePP missing', 2 unless $have_xml_treepp; + my $t = XML::TreePP->new->parse($feed); + like($t->{feed}->{-xmlns}, qr/\bAtom\b/, + 'looks like an an Atom feed'); + is(scalar @{$t->{feed}->{entry}}, 3, + 'parsed three entries'); } unlike($feed, qr/SPAM/, "spam gone :>"); } diff --git a/t/psgi_v2.t b/t/psgi_v2.t index fc825acf..2c9387a4 100644 --- a/t/psgi_v2.t +++ b/t/psgi_v2.t @@ -160,11 +160,11 @@ test_psgi(sub { $www->call(@_) }, sub { $res = $cb->(GET('/v2test/?q=m:a-mid@b&x=A')); is($res->code, 200, 'success with Atom search'); SKIP: { - require_mods(qw(XML::Feed), 2); - $raw = $res->content; - my $p = XML::Feed->parse(\$raw); - is($p->format, "Atom", "parsed atom feed"); - is(scalar $p->entries, 3, "parsed three entries"); + require_mods(qw(XML::TreePP), 2); + my $t = XML::TreePP->new->parse($res->content); + like($t->{feed}->{-xmlns}, qr/\bAtom\b/, + 'looks like an an Atom feed'); + is(scalar @{$t->{feed}->{entry}}, 3, 'parsed three entries'); }; local $SIG{__WARN__} = 'DEFAULT'; |