X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fplack.t;h=7eb7d7f2814fda2c4977e4bb268c366d39a8952a;hb=refs%2Ftags%2Fv1.1.0-pre1;hp=1d624589e810f63b24f927efb616aaa32da9c3ee;hpb=172416d1cd465da4242cc744a3f309d307f1311d;p=public-inbox.git
diff --git a/t/plack.t b/t/plack.t
index 1d624589..7eb7d7f2 100644
--- a/t/plack.t
+++ b/t/plack.t
@@ -1,11 +1,11 @@
-# Copyright (C) 2014-2015 all contributors
-# License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt)
+# Copyright (C) 2014-2018 all contributors
+# License: AGPL-3.0+
use strict;
use warnings;
use Test::More;
use Email::MIME;
use File::Temp qw/tempdir/;
-my $psgi = "examples/public-inbox.psgi";
+my $psgi = "./examples/public-inbox.psgi";
my $tmpdir = tempdir('pi-plack-XXXXXX', TMPDIR => 1, CLEANUP => 1);
my $pi_config = "$tmpdir/config";
my $maindir = "$tmpdir/main.git";
@@ -18,6 +18,7 @@ foreach my $mod (@mods) {
}
use_ok 'PublicInbox::Import';
use_ok 'PublicInbox::Git';
+my @ls;
foreach my $mod (@mods) { use_ok $mod; }
{
@@ -55,6 +56,8 @@ EOF
$im->done;
my $rev = `git --git-dir="$maindir" rev-list HEAD`;
like($rev, qr/\A[a-f0-9]{40}/, "good revision committed");
+ @ls = `git --git-dir="$maindir" ls-tree -r --name-only HEAD`;
+ chomp @ls;
}
my $app = eval {
local $ENV{PI_CONFIG} = $pi_config;
@@ -198,6 +201,21 @@ EOF
"$sfx redirected to /mbox.gz");
});
}
+ test_psgi($app, sub {
+ my ($cb) = @_;
+ # for a while, we used to support /$INBOX/$X40/
+ # when we "compressed" long Message-IDs to SHA-1
+ # Now we're stuck supporting them forever :<
+ foreach my $path (@ls) {
+ $path =~ tr!/!!d;
+ my $from = "http://example.com/test/$path/";
+ my $res = $cb->(GET($from));
+ is(301, $res->code, 'is permanent redirect');
+ like($res->header('Location'),
+ qr!/test/blah\@example\.com/!,
+ 'redirect from x40 MIDs works');
+ }
+ });
}
done_testing();