Mercurial > hg > nginx-tests
comparison server_tokens.t @ 869:f528369414aa
Tests: added tests for server_tokens directive.
author | Andrey Zelenkov <zelenkov@nginx.com> |
---|---|
date | Tue, 15 Mar 2016 17:02:33 +0300 |
parents | |
children | 56994b4ce142 |
comparison
equal
deleted
inserted
replaced
868:d2cb9ed7412e | 869:f528369414aa |
---|---|
1 #!/usr/bin/perl | |
2 | |
3 # (C) Andrey Zelenkov | |
4 # (C) Nginx, Inc. | |
5 | |
6 # Tests for server_tokens directive. | |
7 | |
8 ############################################################################### | |
9 | |
10 use warnings; | |
11 use strict; | |
12 | |
13 use Test::More; | |
14 | |
15 use Socket qw/ $CRLF /; | |
16 | |
17 BEGIN { use FindBin; chdir($FindBin::Bin); } | |
18 | |
19 use lib 'lib'; | |
20 use Test::Nginx; | |
21 | |
22 ############################################################################### | |
23 | |
24 select STDERR; $| = 1; | |
25 select STDOUT; $| = 1; | |
26 | |
27 my $t = Test::Nginx->new()->has(qw/http rewrite/) | |
28 ->write_file_expand('nginx.conf', <<'EOF'); | |
29 | |
30 %%TEST_GLOBALS%% | |
31 | |
32 daemon off; | |
33 | |
34 events { | |
35 } | |
36 | |
37 http { | |
38 %%TEST_GLOBALS_HTTP%% | |
39 | |
40 map $arg_st $server_tokens { | |
41 default $arg_st; | |
42 } | |
43 | |
44 server { | |
45 listen 127.0.0.1:8080; | |
46 | |
47 location /200 { | |
48 return 200; | |
49 } | |
50 | |
51 location /404 { | |
52 return 404; | |
53 } | |
54 | |
55 location /off { | |
56 server_tokens off; | |
57 | |
58 location /off/200 { | |
59 return 200; | |
60 } | |
61 | |
62 location /off/404 { | |
63 return 404; | |
64 } | |
65 } | |
66 | |
67 location /on { | |
68 server_tokens on; | |
69 | |
70 location /on/200 { | |
71 return 200; | |
72 } | |
73 | |
74 location /on/404 { | |
75 return 404; | |
76 } | |
77 } | |
78 | |
79 location /empty { | |
80 server_tokens ""; | |
81 | |
82 location /empty/200 { | |
83 return 200; | |
84 } | |
85 | |
86 location /empty/404 { | |
87 return 404; | |
88 } | |
89 } | |
90 | |
91 location /var { | |
92 server_tokens $server_tokens; | |
93 | |
94 location /var/200 { | |
95 return 200; | |
96 } | |
97 | |
98 location /var/404 { | |
99 return 404; | |
100 } | |
101 } | |
102 } | |
103 } | |
104 | |
105 EOF | |
106 | |
107 $t->try_run('no server_tokens variable support')->plan(21); | |
108 | |
109 ############################################################################### | |
110 | |
111 like(http_get('/200'), qr/Server: nginx\/\d+\.\d+\.\d+/, 'tokens default 200'); | |
112 like(http_get('/404'), qr/Server: nginx\/\d+\.\d+\.\d+/, 'tokens default 404'); | |
113 like(http_body('/404'), qr/nginx\/\d+\.\d+\.\d+/, 'tokens default 404 body'); | |
114 | |
115 like(http_get('/off/200'), qr/Server: nginx${CRLF}/, 'tokens off 200'); | |
116 like(http_get('/off/404'), qr/Server: nginx${CRLF}/, 'tokens off 404'); | |
117 like(http_body('/off/404'), qr/nginx(?!\/)/, 'tokens off 404 body'); | |
118 | |
119 like(http_get('/on/200'), qr/Server: nginx\/\d+\.\d+\.\d+/, 'tokens on 200'); | |
120 like(http_get('/on/404'), qr/Server: nginx\/\d+\.\d+\.\d+/, 'tokens on 404'); | |
121 like(http_body('/on/404'), qr/nginx\/\d+\.\d+\.\d+/, 'tokens on 404 body'); | |
122 | |
123 unlike(http_get('/empty/200'), qr/Server:/, 'tokens empty 200'); | |
124 unlike(http_get('/empty/404'), qr/Server:/, 'tokens empty 404'); | |
125 unlike(http_body('/empty/404'), qr/nginx/, 'tokens empty 404 body'); | |
126 | |
127 like(http_get('/var/200?st=off'), qr/Server: nginx${CRLF}/, | |
128 'tokens var off 200'); | |
129 like(http_get('/var/404?st=off'), qr/Server: nginx${CRLF}/, | |
130 'tokens var off 404'); | |
131 like(http_body('/var/404?st=off'), qr/nginx(?!\/)/, 'tokens var off 404 body'); | |
132 | |
133 like(http_get('/var/200?st=on'), qr/Server: nginx\/\d+\.\d+\.\d+/, | |
134 'tokens var on 200'); | |
135 like(http_get('/var/404?st=on'), qr/Server: nginx\/\d+\.\d+\.\d+/, | |
136 'tokens var on 404'); | |
137 like(http_body('/var/404?st=on'), qr/nginx\/\d+\.\d+\.\d+/, | |
138 'tokens var on 404 body'); | |
139 | |
140 unlike(http_get('/var/200'), qr/Server:/, 'tokens var empty 200'); | |
141 unlike(http_get('/var/404'), qr/Server:/, 'tokens var empty 404'); | |
142 unlike(http_body('/var/404'), qr/nginx/, 'tokens var empty 404 body'); | |
143 | |
144 ############################################################################### | |
145 | |
146 sub http_body { | |
147 my ($uri) = shift; | |
148 return http_get($uri) =~ /.*?\x0d\x0a?\x0d\x0a?(.*)/ms && $1; | |
149 } | |
150 | |
151 ############################################################################### |