about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--INSTALL6
-rwxr-xr-xci/deps.perl2
-rw-r--r--t/cgi.t13
-rw-r--r--t/feed.t36
-rw-r--r--t/psgi_v2.t10
5 files changed, 37 insertions, 30 deletions
diff --git a/INSTALL b/INSTALL
index 0b4c3957..bf1c821a 100644
--- a/INSTALL
+++ b/INSTALL
@@ -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
                 ) ],
diff --git a/t/cgi.t b/t/cgi.t
index dc1c8b8a..97bdebd9 100644
--- a/t/cgi.t
+++ b/t/cgi.t
@@ -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 };
         }
 }
 
diff --git a/t/feed.t b/t/feed.t
index 5333d582..cfa09a7c 100644
--- a/t/feed.t
+++ b/t/feed.t
@@ -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';