X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fcgi.t;h=18632cee6c366ee0d6e00c801cb497d1783828bf;hb=f76f265a851944b5dedcc3be5f3b5224b6ebda89;hp=fc28ae30e08b7cfdf0bbad0dafd3118dc725d9a8;hpb=9a2931759c3dcbd879728b49151aa3f8a641b506;p=public-inbox.git diff --git a/t/cgi.t b/t/cgi.t index fc28ae30..18632cee 100644 --- a/t/cgi.t +++ b/t/cgi.t @@ -1,4 +1,4 @@ -# Copyright (C) 2014, Eric Wong and all contributors +# Copyright (C) 2014-2015 all contributors # License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt) use strict; use warnings; @@ -109,7 +109,7 @@ EOF like($res->{body}, qr/test for public-inbox/, "set title in XML feed"); like($res->{body}, - qr!http://test\.example\.com/test/m/blah%40example\.com!, + qr!http://test\.example\.com/test/blah%40example\.com/!, "link id set"); like($res->{body}, qr/what\?/, "reply included"); } @@ -152,27 +152,27 @@ EOF } local $ENV{GIT_DIR} = $maindir; - my $res = cgi_run("/test/m/slashy%2fasdf%40example.com/raw"); + my $res = cgi_run("/test/slashy%2fasdf%40example.com/raw"); like($res->{body}, qr/Message-Id: <\Q$slashy_mid\E>/, "slashy mid raw hit"); - $res = cgi_run("/test/m/blahblah\@example.com/raw"); + $res = cgi_run("/test/blahblah\@example.com/raw"); like($res->{body}, qr/Message-Id: <blahblah\@example\.com>/, "mid raw hit"); - $res = cgi_run("/test/m/blahblah\@example.con/raw"); - like($res->{head}, qr/Status: 404 Not Found/, "mid raw miss"); + $res = cgi_run("/test/blahblah\@example.con/raw"); + like($res->{head}, qr/Status: 300 Multiple Choices/, "mid raw miss"); - $res = cgi_run("/test/m/blahblah\@example.com/"); + $res = cgi_run("/test/blahblah\@example.com/"); like($res->{body}, qr/\A<html>/, "mid html hit"); like($res->{head}, qr/Status: 200 OK/, "200 response"); - $res = cgi_run("/test/m/blahblah\@example.con/"); - like($res->{head}, qr/Status: 404 Not Found/, "mid html miss"); + $res = cgi_run("/test/blahblah\@example.con/"); + like($res->{head}, qr/Status: 300 Multiple Choices/, "mid html miss"); - $res = cgi_run("/test/f/blahblah\@example.com/"); + $res = cgi_run("/test/blahblah\@example.com/f/"); like($res->{body}, qr/\A<html>/, "mid html"); like($res->{head}, qr/Status: 200 OK/, "200 response"); - $res = cgi_run("/test/f/blahblah\@example.con/"); - like($res->{head}, qr/Status: 404 Not Found/, "mid html miss"); + $res = cgi_run("/test/blahblah\@example.con/f/"); + like($res->{head}, qr/Status: 300 Multiple Choices/, "mid html miss"); $res = cgi_run("/test/"); like($res->{body}, qr/slashy%2Fasdf%40example\.com/, @@ -183,7 +183,7 @@ EOF { local $ENV{HOME} = $home; local $ENV{PATH} = $main_path; - my $path = "/test/t/blahblah%40example.com/mbox.gz"; + my $path = "/test/blahblah%40example.com/t.mbox.gz"; my $res = cgi_run($path); like($res->{head}, qr/^Status: 501 /, "search not-yet-enabled"); my $indexed = system($index, $maindir) == 0; @@ -200,6 +200,18 @@ EOF } else { like($res->{head}, qr/^Status: 501 /, "search not available"); } + + my $have_xml_feed = eval { require XML::Feed; 1 } if $indexed; + if ($have_xml_feed) { + $path = "/test/blahblah%40example.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"); + } } # redirect list-name-only URLs