Mercurial > hg > nginx-tests
changeset 1763:b7d0e595e927
Tests: fastcgi tests for combining headers.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 30 May 2022 21:28:56 +0300 |
parents | 5ad8f0b5fa0f |
children | be3ada2e9d24 |
files | fastcgi_header_params.t |
diffstat | 1 files changed, 39 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/fastcgi_header_params.t Mon May 30 21:27:01 2022 +0300 +++ b/fastcgi_header_params.t Mon May 30 21:28:56 2022 +0300 @@ -25,7 +25,7 @@ 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 @@ like(http_get_headers('/'), qr/SEE-THIS/, 'fastcgi request with many ignored headers'); +TODO: { +local $TODO = 'not yet' unless $t->has_version('1.23.0'); + +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 @@ 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