]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/httpd-corner.psgi
www: drop --subject from "git send-email" instructions
[public-inbox.git] / t / httpd-corner.psgi
index 18e556be0e39c29c5ca20f64ddbb4953da8052b4..e9a3a6b7c1c8bbf29a2c1d4658a3530433f9125b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2019 all contributors <meta@public-inbox.org>
+# Copyright (C) 2016-2021 all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 # corner case tests for the generic PSGI server
 # Usage: plackup [OPTIONS] /path/to/this/file
@@ -48,7 +48,7 @@ my $app = sub {
                }
        } elsif ($path eq '/host-port') {
                $code = 200;
-               push @$body, "$env->{REMOTE_ADDR}:$env->{REMOTE_PORT}";
+               push @$body, "$env->{REMOTE_ADDR} $env->{REMOTE_PORT}";
        } elsif ($path eq '/callback') {
                return sub {
                        my ($res) = @_;
@@ -85,11 +85,36 @@ my $app = sub {
                        close $null;
                        [ 200, [ qw(Content-Type application/octet-stream) ]];
                });
+       } elsif ($path eq '/psgi-return-gzip') {
+               require PublicInbox::Qspawn;
+               require PublicInbox::GzipFilter;
+               my $cmd = [qw(echo hello world)];
+               my $qsp = PublicInbox::Qspawn->new($cmd);
+               $env->{'qspawn.filter'} = PublicInbox::GzipFilter->new;
+               return $qsp->psgi_return($env, undef, sub {
+                       [ 200, [ qw(Content-Type application/octet-stream)]]
+               });
+       } elsif ($path eq '/psgi-return-compressible') {
+               require PublicInbox::Qspawn;
+               my $cmd = [qw(echo goodbye world)];
+               my $qsp = PublicInbox::Qspawn->new($cmd);
+               return $qsp->psgi_return($env, undef, sub {
+                       [200, [qw(Content-Type text/plain)]]
+               });
+       } elsif ($path eq '/psgi-return-enoent') {
+               require PublicInbox::Qspawn;
+               my $cmd = [ 'this-better-not-exist-in-PATH'.rand ];
+               my $qsp = PublicInbox::Qspawn->new($cmd);
+               return $qsp->psgi_return($env, undef, sub {
+                       [ 200, [ qw(Content-Type application/octet-stream)]]
+               });
        } elsif ($path eq '/pid') {
                $code = 200;
                push @$body, "$$\n";
+       } elsif ($path eq '/url_scheme') {
+               $code = 200;
+               push @$body, $env->{'psgi.url_scheme'}
        }
-
        [ $code, $h, $body ]
 };