Mercurial > hg > nginx-tests
annotate proxy_merge_headers.t @ 836:a9c4cebcfe69
Tests: adjusted http resolver test with resend.
Don't bother with socket error to force resolver resend. Nginx doesn't handle
well ECONNREFUSED send() error, which results in "500 Internal Server Error".
It may deserve a separate test, though.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Fri, 29 Jan 2016 00:40:05 +0300 |
parents | a9569f57da98 |
children | e9064d691790 |
rev | line source |
---|---|
182
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
2 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
3 # (C) Maxim Dounin |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
4 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
5 # Tests for proxy_set_header inheritance. |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
6 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
7 ############################################################################### |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
8 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
9 use warnings; |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
10 use strict; |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
11 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
12 use Test::More; |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
13 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
14 BEGIN { use FindBin; chdir($FindBin::Bin); } |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
15 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
16 use lib 'lib'; |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
17 use Test::Nginx; |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
18 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
19 ############################################################################### |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
20 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
21 select STDERR; $| = 1; |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
22 select STDOUT; $| = 1; |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
23 |
574
2cd00179f4b2
Tests: has_feature() introduced in Test::Nginx.
Sergey Kandaurov <pluknet@nginx.com>
parents:
503
diff
changeset
|
24 my $t = Test::Nginx->new()->has(qw/http proxy cache rewrite shmem/)->plan(7) |
182
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
25 ->write_file_expand('nginx.conf', <<'EOF'); |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
26 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
27 %%TEST_GLOBALS%% |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
28 |
249
6a0d934950bc
Tests: remove extra spaces in "daemon off".
Maxim Dounin <mdounin@mdounin.ru>
parents:
241
diff
changeset
|
29 daemon off; |
182
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
30 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
31 events { |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
32 } |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
33 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
34 http { |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
35 %%TEST_GLOBALS_HTTP%% |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
36 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
37 proxy_cache_path %%TESTDIR%%/cache levels=1:2 |
503
071e8941e3bf
Tests: reduce shared memory zone sizes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
38 keys_zone=NAME:1m; |
182
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
39 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
40 proxy_set_header X-Blah "blah"; |
228
5c9e43547b71
Tests: proxy_hide_header/proxy_pass_header inheritance tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
223
diff
changeset
|
41 proxy_hide_header X-Hidden; |
182
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
42 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
43 server { |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
44 listen 127.0.0.1:8080; |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
45 server_name localhost; |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
46 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
47 proxy_cache NAME; |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
48 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
49 location / { |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
50 proxy_pass http://127.0.0.1:8081; |
228
5c9e43547b71
Tests: proxy_hide_header/proxy_pass_header inheritance tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
223
diff
changeset
|
51 |
5c9e43547b71
Tests: proxy_hide_header/proxy_pass_header inheritance tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
223
diff
changeset
|
52 location /nested/ { |
5c9e43547b71
Tests: proxy_hide_header/proxy_pass_header inheritance tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
223
diff
changeset
|
53 proxy_pass http://127.0.0.1:8081; |
5c9e43547b71
Tests: proxy_hide_header/proxy_pass_header inheritance tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
223
diff
changeset
|
54 proxy_pass_header X-Pad; |
5c9e43547b71
Tests: proxy_hide_header/proxy_pass_header inheritance tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
223
diff
changeset
|
55 } |
182
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
56 } |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
57 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
58 location /no/ { |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
59 proxy_pass http://127.0.0.1:8081; |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
60 proxy_cache off; |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
61 } |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
62 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
63 location /setbody/ { |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
64 proxy_pass http://127.0.0.1:8081; |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
65 proxy_set_body "body"; |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
66 } |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
67 } |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
68 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
69 server { |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
70 listen 127.0.0.1:8081; |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
71 server_name localhost; |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
72 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
73 location / { |
228
5c9e43547b71
Tests: proxy_hide_header/proxy_pass_header inheritance tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
223
diff
changeset
|
74 add_header X-Hidden "hidden"; |
5c9e43547b71
Tests: proxy_hide_header/proxy_pass_header inheritance tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
223
diff
changeset
|
75 add_header X-Pad "passed"; |
182
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
76 return 200 "ims=$http_if_modified_since;blah=$http_x_blah;"; |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
77 } |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
78 } |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
79 } |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
80 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
81 EOF |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
82 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
83 $t->run(); |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
84 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
85 ############################################################################### |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
86 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
87 like(http_get_ims('/'), qr/ims=;blah=blah;/, |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
88 'if-modified-since cleared with cache'); |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
89 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
90 like(http_get_ims('/no/'), qr/ims=blah;blah=blah;/, |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
91 'if-modified-since preserved without cache'); |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
92 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
93 like(http_get_ims('/setbody/'), qr/blah=blah;/, |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
94 'proxy_set_header inherited with proxy_set_body'); |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
95 |
228
5c9e43547b71
Tests: proxy_hide_header/proxy_pass_header inheritance tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
223
diff
changeset
|
96 unlike(http_get('/'), qr/X-Pad/, 'proxy_pass_header default'); |
5c9e43547b71
Tests: proxy_hide_header/proxy_pass_header inheritance tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
223
diff
changeset
|
97 like(http_get('/nested/'), qr/X-Pad/, 'proxy_pass_header nested'); |
5c9e43547b71
Tests: proxy_hide_header/proxy_pass_header inheritance tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
223
diff
changeset
|
98 unlike(http_get('/'), qr/X-Hidden/, 'proxy_hide_header inherited'); |
5c9e43547b71
Tests: proxy_hide_header/proxy_pass_header inheritance tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
223
diff
changeset
|
99 unlike(http_get('/nested/'), qr/X-Hidden/, 'proxy_hide_header nested'); |
5c9e43547b71
Tests: proxy_hide_header/proxy_pass_header inheritance tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
223
diff
changeset
|
100 |
182
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
101 ############################################################################### |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
102 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
103 sub http_get_ims { |
589
a9569f57da98
Tests: whitespaces fix.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
574
diff
changeset
|
104 my ($url) = @_; |
a9569f57da98
Tests: whitespaces fix.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
574
diff
changeset
|
105 return http(<<EOF); |
182
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
106 GET $url HTTP/1.0 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
107 Host: localhost |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
108 Connection: close |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
109 If-Modified-Since: blah |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
110 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
111 EOF |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
112 } |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
113 |
23f81eb0a817
Tests: proxy_set_header/fastcgi_param/scgi_param tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
114 ############################################################################### |