diff options
author | Eric Wong <e@80x24.org> | 2015-09-01 08:55:26 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2015-09-01 08:56:07 +0000 |
commit | 1b4b2c7b8b2f2df8f114617d2e875eaf5c839ce0 (patch) | |
tree | 692f3f27b9b763d0fdc7b594246182f0957df64b /t | |
parent | 97bef984363d1279a6ac130d35f063a834e9c241 (diff) | |
download | public-inbox-1b4b2c7b8b2f2df8f114617d2e875eaf5c839ce0.tar.gz |
This allows common /m/ links to be used without a prefix, saving 2 precious bytes for permalinks and raw messages. Old URLs continue to redirect.
Diffstat (limited to 't')
-rw-r--r-- | t/cgi.t | 20 | ||||
-rw-r--r-- | t/feed.t | 2 | ||||
-rw-r--r-- | t/plack.t | 32 | ||||
-rw-r--r-- | t/view.t | 6 |
4 files changed, 34 insertions, 26 deletions
@@ -109,7 +109,7 @@ EOF like($res->{body}, qr/<title>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,26 +152,26 @@ 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"); + $res = cgi_run("/test/blahblah\@example.con/raw"); like($res->{head}, qr/Status: 404 Not Found/, "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/"); + $res = cgi_run("/test/blahblah\@example.con/"); like($res->{head}, qr/Status: 404 Not Found/, "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/"); + $res = cgi_run("/test/blahblah\@example.con/f/"); like($res->{head}, qr/Status: 404 Not Found/, "mid html miss"); $res = cgi_run("/test/"); @@ -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; @@ -203,7 +203,7 @@ EOF my $have_xml_feed = eval { require XML::Feed; 1 } if $indexed; if ($have_xml_feed) { - $path = "/test/t/blahblah%40example.com/atom"; + $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/xml!m, @@ -77,7 +77,7 @@ EOF } unlike($feed, qr/drop me/, "long quoted text dropped"); - like($feed, qr!/f/\d%40example\.com/#q!, + like($feed, qr!/\d%40example\.com/f/#q!, "/f/ url generated for long quoted text"); like($feed, qr/inline me here/, "short quoted text kept"); like($feed, qr/keep me/, "unquoted text saved"); @@ -88,7 +88,7 @@ EOF is(200, $res->code, 'success response received'); like($res->content, qr!href="\Q$atomurl\E"!, 'atom URL generated'); - like($res->content, qr!href="m/blah%40example\.com/"!, + like($res->content, qr!href="blah%40example\.com/"!, 'index generated'); }); @@ -98,14 +98,14 @@ EOF my $res = $cb->(GET($pfx . '/atom.xml')); is(200, $res->code, 'success response received for atom'); like($res->content, - qr!link\s+href="\Q$pfx\E/m/blah%40example\.com/"!s, + qr!link\s+href="\Q$pfx\E/blah%40example\.com/"!s, 'atom feed generated correct URL'); }); - foreach my $t (qw(f m)) { + foreach my $t (('', 'f/')) { test_psgi($app, sub { my ($cb) = @_; - my $path = "/$t/blah%40example.com/"; + my $path = "/blah%40example.com/$t"; my $res = $cb->(GET($pfx . $path)); is(200, $res->code, "success for $path"); like($res->content, qr!<title>hihi - Me</title>!, @@ -114,8 +114,8 @@ EOF } test_psgi($app, sub { my ($cb) = @_; - my $res = $cb->(GET($pfx . '/m/blah%40example.com/raw')); - is(200, $res->code, 'success response received for /m/*/raw'); + my $res = $cb->(GET($pfx . '/blah%40example.com/raw')); + is(200, $res->code, 'success response received for /*/raw'); like($res->content, qr!\AFrom !, "mbox returned"); }); @@ -126,18 +126,25 @@ EOF my $res = $cb->(GET($pfx . "/$t/blah%40example.com.txt")); is(301, $res->code, "redirect for old $t .txt link"); my $location = $res->header('Location'); - like($location, qr!/$t/blah%40example\.com/raw\z!, + like($location, qr!/blah%40example\.com/raw\z!, ".txt redirected to /raw"); }); } - foreach my $t (qw(m f t)) { + + my %umap = ( + 'm' => '', + 'f' => 'f/', + 't' => 't/', + ); + while (my ($t, $e) = each %umap) { test_psgi($app, sub { my ($cb) = @_; my $res = $cb->(GET($pfx . "/$t/blah%40example.com.html")); is(301, $res->code, "redirect for old $t .html link"); my $location = $res->header('Location'); - like($location, qr!/$t/blah%40example\.com/(?:#u)?\z!, - ".html redirected to /raw"); + like($location, + qr!/blah%40example\.com/$e(?:#u)?\z!, + ".html redirected to new location"); }); } foreach my $sfx (qw(mbox mbox.gz)) { @@ -146,8 +153,9 @@ EOF my $res = $cb->(GET($pfx . "/t/blah%40example.com.$sfx")); is(301, $res->code, 'redirect for old thread link'); my $location = $res->header('Location'); - like($location, qr!/t/blah%40example\.com/mbox\.gz\z!, - "$sfx redirected to /mbox.gz"); + like($location, + qr!/blah%40example\.com/t\.mbox(?:\.gz)?\z!, + "$sfx redirected to /mbox.gz"); }); } } @@ -44,17 +44,17 @@ EOF my $html = PublicInbox::View::msg_html(undef, $mime); # ghetto tests - like($html, qr!<a\nhref="\.\./\.\./m/hello%40!s, "MID link present"); + like($html, qr!<a\nhref="\.\./raw"!s, "raw link present"); like($html, qr/hello world\b/, "body present"); like($html, qr/> keep this inline/, "short quoted text is inline"); like($html, qr/<a\nid=[^>]+><\/a>> Long and wordy/, "long quoted text is anchored"); # short page - my $pfx = "../../f/hello%40example.com/"; + my $pfx = "../hello%40example.com/f/"; $mime = Email::MIME->new($s); my $short = PublicInbox::View::msg_html(undef, $mime, $pfx); - like($short, qr!<a\nhref="\.\./\.\./f/hello%40example\.com/!s, + like($short, qr!<a\nhref="\.\./hello%40example\.com/f/!s, "MID link present"); like($short, qr/\n> keep this inline/, "short quoted text is inline"); |