[PATCH 02 of 10] Tests: fastcgi tests for combining headers
Maxim Dounin
mdounin at mdounin.ru
Wed Apr 20 22:37:43 UTC 2022
# HG changeset patch
# User Maxim Dounin <mdounin at mdounin.ru>
# Date 1650492928 -10800
# Thu Apr 21 01:15:28 2022 +0300
# Node ID 910b323534f0100d0a1c8c7934a0e91c51f4e888
# Parent cc83aac5f9482dc7485d92a1e5944586774a5306
Tests: fastcgi tests for combining headers.
diff --git a/fastcgi_header_params.t b/fastcgi_header_params.t
--- a/fastcgi_header_params.t
+++ b/fastcgi_header_params.t
@@ -25,7 +25,7 @@ eval { require FCGI; };
plan(skip_all => 'FCGI not installed') if $@;
plan(skip_all => 'win32') if $^O eq 'MSWin32';
-my $t = Test::Nginx->new()->has(qw/http fastcgi/)->plan(1)
+my $t = Test::Nginx->new()->has(qw/http fastcgi/)->plan(4)
->write_file_expand('nginx.conf', <<'EOF');
%%TEST_GLOBALS%%
@@ -59,6 +59,37 @@ EOF
like(http_get_headers('/'), qr/SEE-THIS/,
'fastcgi request with many ignored headers');
+TODO: {
+local $TODO = 'not yet';
+
+my $r;
+
+$r = http(<<EOF);
+GET / HTTP/1.0
+Host: localhost
+X-Forwarded-For: foo
+X-Forwarded-For: bar
+X-Forwarded-For: bazz
+Cookie: foo
+Cookie: bar
+Cookie: bazz
+Foo: foo
+Foo: bar
+Foo: bazz
+
+EOF
+
+like($r, qr/X-Forwarded-For: foo, bar, bazz/,
+ 'fastcgi with multiple X-Forwarded-For headers');
+
+like($r, qr/X-Cookie: foo; bar; bazz/,
+ 'fastcgi with multiple Cookie headers');
+
+like($r, qr/X-Foo: foo, bar, bazz/,
+ 'fastcgi with multiple unknown headers');
+
+}
+
###############################################################################
sub http_get_headers {
@@ -100,9 +131,16 @@ sub fastcgi_daemon {
while( $request->Accept() >= 0 ) {
$count++;
+ my $xfwd = $ENV{HTTP_X_FORWARDED_FOR} || '';
+ my $cookie = $ENV{HTTP_COOKIE} || '';
+ my $foo = $ENV{HTTP_FOO} || '';
+
print <<EOF;
Location: http://localhost/redirect
Content-Type: text/html
+X-Forwarded-For: $xfwd
+X-Cookie: $cookie
+X-Foo: $foo
SEE-THIS
$count
More information about the nginx-devel
mailing list