Mercurial > hg > nginx-tests
annotate fastcgi_header_params.t @ 540:481d705b8610
Tests: SSL support in mail backends.
Socket is now embedded into every mail module.
Socket methods are wrapped where appropriate.
The new "SSL" extra flag specifies to accept connection over SSL.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Fri, 03 Apr 2015 00:11:38 +0300 |
parents | 6fe0459b6668 |
children | a9569f57da98 |
rev | line source |
---|---|
153
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
2 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
3 # (C) Maxim Dounin |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
4 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
5 # Test for fastcgi header params. |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
6 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
7 ############################################################################### |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
8 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
9 use warnings; |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
10 use strict; |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
11 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
12 use Test::More; |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
13 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
14 BEGIN { use FindBin; chdir($FindBin::Bin); } |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
15 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
16 use lib 'lib'; |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
17 use Test::Nginx; |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
18 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
19 ############################################################################### |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
20 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
21 select STDERR; $| = 1; |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
22 select STDOUT; $| = 1; |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
23 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
24 eval { require FCGI; }; |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
25 plan(skip_all => 'FCGI not installed') if $@; |
221
8d2c6358d830
Tests: avoid using FCGI on win32.
Maxim Dounin <mdounin@mdounin.ru>
parents:
166
diff
changeset
|
26 plan(skip_all => 'win32') if $^O eq 'MSWin32'; |
153
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
27 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
28 my $t = Test::Nginx->new()->has(qw/http fastcgi/)->plan(1) |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
29 ->write_file_expand('nginx.conf', <<'EOF'); |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
30 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
31 %%TEST_GLOBALS%% |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
32 |
249
6a0d934950bc
Tests: remove extra spaces in "daemon off".
Maxim Dounin <mdounin@mdounin.ru>
parents:
241
diff
changeset
|
33 daemon off; |
153
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
34 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
35 events { |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
36 } |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
37 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
38 http { |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
39 %%TEST_GLOBALS_HTTP%% |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
40 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
41 server { |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
42 listen 127.0.0.1:8080; |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
43 server_name localhost; |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
44 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
45 location / { |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
46 fastcgi_pass 127.0.0.1:8081; |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
47 fastcgi_param HTTP_X_BLAH "blah"; |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
48 } |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
49 } |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
50 } |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
51 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
52 EOF |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
53 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
54 $t->run_daemon(\&fastcgi_daemon); |
295
6fe0459b6668
Tests: eliminate startup races in proxy and fastcgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
55 $t->run()->waitforsocket('127.0.0.1:8081'); |
153
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
56 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
57 ############################################################################### |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
58 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
59 like(http_get_headers('/'), qr/SEE-THIS/, |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
60 'fastcgi request with many ignored headers'); |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
61 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
62 ############################################################################### |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
63 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
64 sub http_get_headers { |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
65 my ($url, %extra) = @_; |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
66 return http(<<EOF, %extra); |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
67 GET $url HTTP/1.0 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
68 Host: localhost |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
69 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
70 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
71 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
72 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
73 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
74 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
75 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
76 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
77 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
78 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
79 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
80 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
81 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
82 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
83 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
84 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
85 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
86 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
87 X-Blah: ignored header |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
88 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
89 EOF |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
90 } |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
91 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
92 ############################################################################### |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
93 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
94 sub fastcgi_daemon { |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
95 my $socket = FCGI::OpenSocket('127.0.0.1:8081', 5); |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
96 my $request = FCGI::Request(\*STDIN, \*STDOUT, \*STDERR, \%ENV, |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
97 $socket); |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
98 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
99 my $count; |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
100 while( $request->Accept() >= 0 ) { |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
101 $count++; |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
102 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
103 print <<EOF; |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
104 Location: http://127.0.0.1:8080/redirect |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
105 Content-Type: text/html |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
106 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
107 SEE-THIS |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
108 $count |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
109 EOF |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
110 } |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
111 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
112 FCGI::CloseSocket($socket); |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
113 } |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
114 |
26cf61c5ac35
Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
115 ############################################################################### |