]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/cgi.t
t/cgi.t: move expected failure tests to t/plack.t
[public-inbox.git] / t / cgi.t
diff --git a/t/cgi.t b/t/cgi.t
index bd92ca361047f886cbdbace18521774703863882..e705cd76a77b0203aa4ecfccaa529047adb209c3 100644 (file)
--- a/t/cgi.t
+++ b/t/cgi.t
@@ -48,9 +48,8 @@ my $im = PublicInbox::Import->new($git, 'test', $addr);
 {
        local $ENV{HOME} = $home;
 
-       # ensure successful message delivery
-       {
-               my $mime = Email::MIME->new(<<EOF);
+       # inject some messages:
+       my $mime = Email::MIME->new(<<EOF);
 From: Me <me\@example.com>
 To: You <you\@example.com>
 Cc: $addr
@@ -60,15 +59,10 @@ Date: Thu, 01 Jan 1970 00:00:00 +0000
 
 zzzzzz
 EOF
-               $im->add($mime);
-               $im->done;
-               my $rev = `git --git-dir=$maindir rev-list HEAD`;
-               like($rev, qr/\A[a-f0-9]{40}/, "good revision committed");
-       }
+       $im->add($mime);
 
        # deliver a reply, too
-       {
-               my $reply = Email::MIME->new(<<EOF);
+       my $reply = Email::MIME->new(<<EOF);
 From: You <you\@example.com>
 To: Me <me\@example.com>
 Cc: $addr
@@ -82,53 +76,8 @@ Me wrote:
 
 what?
 EOF
-               $im->add($reply);
-               $im->done;
-               my $rev = `git --git-dir=$maindir rev-list HEAD`;
-               like($rev, qr/\A[a-f0-9]{40}/, "good revision committed");
-       }
-
-}
-
-# obvious failures, first
-{
-       local $ENV{HOME} = $home;
-       my $res = cgi_run("/", "", "PUT");
-       like($res->{head}, qr/Status:\s*405/i, "PUT not allowed");
-
-       $res = cgi_run("/");
-       like($res->{head}, qr/Status:\s*404/i, "index returns 404");
-}
-
-# dumb HTTP support
-{
-       local $ENV{HOME} = $home;
-       my $path = "/test/info/refs";
-       my $res = cgi_run($path);
-       like($res->{head}, qr/Status:\s*200/i, "info/refs readable");
-       my $orig = $res->{body};
-
-       local $ENV{HTTP_RANGE} = 'bytes=5-10';
-       $res = cgi_run($path);
-       like($res->{head}, qr/Status:\s*206/i, "info/refs partial OK");
-       is($res->{body}, substr($orig, 5, 6), 'partial body OK');
-
-       local $ENV{HTTP_RANGE} = 'bytes=5-';
-       $res = cgi_run($path);
-       like($res->{head}, qr/Status:\s*206/i, "info/refs partial past end OK");
-       is($res->{body}, substr($orig, 5), 'partial body OK past end');
-}
-use Data::Dumper;
-# atom feeds
-{
-       local $ENV{HOME} = $home;
-       my $res = cgi_run("/test/atom.xml");
-       like($res->{body}, qr/<title>test for public-inbox/,
-               "set title in XML feed");
-       like($res->{body},
-               qr!http://test\.example\.com/test/blah\@example\.com/!,
-               "link id set");
-       like($res->{body}, qr/what\?/, "reply included");
+       $im->add($reply);
+       $im->done;
 }
 
 # message-id pages
@@ -205,26 +154,19 @@ EOF
        }
 }
 
-# redirect list-name-only URLs
-{
-       local $ENV{HOME} = $home;
-       my $res = cgi_run("/test");
-       like($res->{head}, qr/Status: 301 Moved/, "redirected status");
-       like($res->{head}, qr!/test/!, "redirected with slash");
-}
-
 done_testing();
 
 sub run_with_env {
        my ($env, @args) = @_;
-       my $init = sub { foreach my $k (keys %$env) { $ENV{$k} = $env->{$k} } };
-       IPC::Run::run(@args, init => $init);
+       IPC::Run::run(@args, init => sub { %ENV = (%ENV, %$env) });
 }
 
 sub cgi_run {
        my %env = (
                PATH_INFO => $_[0],
                QUERY_STRING => $_[1] || "",
+               SCRIPT_NAME => '',
+               REQUEST_URI => $_[0] . ($_[1] ? "?$_[1]" : ''),
                REQUEST_METHOD => $_[2] || "GET",
                GATEWAY_INTERFACE => 'CGI/1.1',
                HTTP_ACCEPT => '*/*',