From 3ed9085b7445fb3b7f7f5eed107dce63e4bc3bf3 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 27 Aug 2015 04:34:02 +0000 Subject: implement legacy redirects for old URLs We should not break existing URLs. Redirect them to the newer, less-ambiguous URLs to improve cache hit ratios. --- t/plack.t | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) (limited to 't') diff --git a/t/plack.t b/t/plack.t index ee77291c..b3c87642 100644 --- a/t/plack.t +++ b/t/plack.t @@ -92,9 +92,9 @@ EOF 'index generated'); }); + my $pfx = 'http://example.com/test'; test_psgi($app, sub { my ($cb) = @_; - my $pfx = 'http://example.com/test'; my $res = $cb->(GET($pfx . '/atom.xml')); is(200, $res->code, 'success response received for atom'); like($res->content, @@ -105,7 +105,6 @@ EOF foreach my $t (qw(f m)) { test_psgi($app, sub { my ($cb) = @_; - my $pfx = 'http://example.com/test'; my $path = "/$t/blah%40example.com/"; my $res = $cb->(GET($pfx . $path)); is(200, $res->code, "success for $path"); @@ -115,11 +114,42 @@ EOF } test_psgi($app, sub { my ($cb) = @_; - my $pfx = 'http://example.com/test'; my $res = $cb->(GET($pfx . '/m/blah%40example.com/raw')); is(200, $res->code, 'success response received for /m/*/raw'); like($res->content, qr!\AFrom !, "mbox returned"); }); + + # legacy redirects + foreach my $t (qw(m f)) { + test_psgi($app, sub { + my ($cb) = @_; + 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!, + ".txt redirected to /raw"); + }); + } + foreach my $t (qw(m f t)) { + 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"); + }); + } + foreach my $sfx (qw(mbox mbox.gz)) { + test_psgi($app, sub { + my ($cb) = @_; + 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"); + }); + } } done_testing(); -- cgit v1.2.3-24-ge0c7