Mercurial > hg > nginx-tests
view fastcgi_merge_params.t @ 1477:8b122b35703b
Tests: fixed session reuse tests in ssl_certificate.t with TLSv1.3.
Previously, session data was retrieved too early, before server passed
application data, which usually means NewSessionTicket is not yet sent.
The fix is to ask server for application data, then retrieve a session.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Mon, 20 May 2019 16:00:40 +0300 |
parents | 196d33c2bb45 |
children | 42d9fd20eeb6 |
line wrap: on
line source
#!/usr/bin/perl # (C) Maxim Dounin # Tests for fastcgi_param inheritance. ############################################################################### use warnings; use strict; use Test::More; BEGIN { use FindBin; chdir($FindBin::Bin); } use lib 'lib'; use Test::Nginx; ############################################################################### select STDERR; $| = 1; select STDOUT; $| = 1; 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 cache/)->plan(9) ->write_file_expand('nginx.conf', <<'EOF'); %%TEST_GLOBALS%% daemon off; events { } http { %%TEST_GLOBALS_HTTP%% fastcgi_cache_path %%TESTDIR%%/cache levels=1:2 keys_zone=NAME:1m; fastcgi_cache_key stub; fastcgi_param HTTP_X_BLAH "blah"; server { listen 127.0.0.1:8080; server_name localhost; fastcgi_cache NAME; location / { fastcgi_pass 127.0.0.1:8081; } location /no/ { fastcgi_pass 127.0.0.1:8081; fastcgi_cache off; } location /custom/ { fastcgi_pass 127.0.0.1:8081; fastcgi_param HTTP_X_BLAH "custom"; } } } EOF $t->run_daemon(\&fastcgi_daemon); $t->run()->waitforsocket('127.0.0.1:' . port(8081)); ############################################################################### like(http_get_ims('/'), qr/ims=;/, 'if-modified-since cleared with cache'); like(http_get_ims('/'), qr/iums=;/, 'if-unmodified-since cleared with cache'); like(http_get_ims('/'), qr/blah=blah;/, 'custom params with cache'); like(http_get_ims('/no/'), qr/ims=blah;/, 'if-modified-since preserved without cache'); like(http_get_ims('/no/'), qr/iums=blah;/, 'if-unmodified-since preserved without cache'); like(http_get_ims('/'), qr/blah=blah;/, 'custom params without cache'); like(http_get_ims('/custom/'), qr/ims=;/, 'if-modified-since cleared with cache custom'); like(http_get_ims('/custom/'), qr/iums=;/, 'if-unmodified-since cleared with cache custom'); like(http_get_ims('/custom/'), qr/blah=custom;/, 'custom params with cache custom'); ############################################################################### sub http_get_ims { my ($url) = @_; return http(<<EOF); GET $url HTTP/1.0 Host: localhost Connection: close If-Modified-Since: blah If-Unmodified-Since: blah EOF } ############################################################################### sub fastcgi_daemon { my $socket = FCGI::OpenSocket('127.0.0.1:' . port(8081), 5); my $request = FCGI::Request(\*STDIN, \*STDOUT, \*STDERR, \%ENV, $socket); my $count; while( $request->Accept() >= 0 ) { $count++; my $ims = $ENV{HTTP_IF_MODIFIED_SINCE}; my $iums = $ENV{HTTP_IF_UNMODIFIED_SINCE}; my $blah = $ENV{HTTP_X_BLAH}; print <<EOF; Location: http://localhost/redirect Content-Type: text/html ims=$ims;iums=$iums;blah=$blah; EOF } FCGI::CloseSocket($socket); } ###############################################################################