From 1534bd3ac9848fc69b473dedc069ae2a95347e1e Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 10 Apr 2014 00:33:54 +0000 Subject: [PATCH] cgi: wire up index + tests Remove the specified /all.html while we're at it, we only have /all.atom.xml because it's convenient for feed readers. --- Documentation/design_www.txt | 1 - public-inbox-cgi | 18 +++++++++++++++--- t/cgi.t | 13 +++---------- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/Documentation/design_www.txt b/Documentation/design_www.txt index d0677d50..c8c4f304 100644 --- a/Documentation/design_www.txt +++ b/Documentation/design_www.txt @@ -2,7 +2,6 @@ URL naming ---------- /$LISTNAME/?before=$GIT_COMMIT -> HTML only -/$LISTNAME/all.html?before=$GIT_COMMIT -> HTML only, includes replies /$LISTNAME/index.atom.xml -> Atom feed /$LISTNAME/all.atom.xml -> Atom feed, includes replies /$LISTNAME/m/$MESSAGE_ID.html -> HTML content (short quotes) diff --git a/public-inbox-cgi b/public-inbox-cgi index 4e727da8..912bb191 100755 --- a/public-inbox-cgi +++ b/public-inbox-cgi @@ -56,9 +56,7 @@ sub main { if ($path_info eq "/") { r404(); } elsif ($path_info =~ m!$LISTNAME_RE/?\z!o) { - invalid_list(\%ctx, $1) || get_list_log(\%ctx, $cgi); - } elsif ($path_info =~ m!$LISTNAME_RE/all\z!o) { - invalid_list(\%ctx, $1) || get_list_all(\%ctx, $cgi); + invalid_list(\%ctx, $1) || get_index(\%ctx, $cgi, 1); } elsif ($path_info =~ m!$LISTNAME_RE/index\.atom\.xml\z!o) { invalid_list(\%ctx, $1) || get_atom(\%ctx, $cgi, 1); } elsif ($path_info =~ m!$LISTNAME_RE/all\.atom\.xml\z!o) { @@ -114,3 +112,17 @@ sub get_atom { }) ]; } + +sub get_index { + my ($ctx, $cgi, $top) = @_; + require PublicInbox::Feed; + [ '200 OK', { 'Content-Type' => 'text/html' }, + PublicInbox::Feed->generate_html_index({ + git_dir => $ctx->{git_dir}, + listname => $ctx->{listname}, + pi_config => $pi_config, + cgi => $cgi, + top => $top, + }) + ]; +} diff --git a/t/cgi.t b/t/cgi.t index f359cf6e..3ba74f30 100644 --- a/t/cgi.t +++ b/t/cgi.t @@ -117,16 +117,9 @@ EOF # indices { local $ENV{HOME} = $home; - my $res = cgi_run("/test/all.atom.xml"); - like($res->{body}, qr/test for public-inbox/, - "set title in XML feed"); - like($res->{body}, - qr!http://test\.example\.com/test/mid/blah%40example\.com!, - "link id set"); - like($res->{body}, qr/what\?/, "reply included"); - - $res = cgi_run("/test/index.atom.xml"); - unlike($res->{body}, qr/what\?/, "reply not included in index"); + my $res = cgi_run("/test/"); + like($res->{head}, qr/Status: 200 OK/, "index returns 200"); + # more checks in t/feed.t } done_testing(); -- 2.44.0