Mercurial > hg > nginx-tests
annotate http_variables.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 | 183f21bbe3d6 |
children | adf5671391ac |
rev | line source |
---|---|
185
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
2 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
3 # (C) Maxim Dounin |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
4 # (C) Valentin Bartenev |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
5 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
6 # Tests for http variables. |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
7 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
8 ############################################################################### |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
9 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
10 use warnings; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
11 use strict; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
12 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
13 use Test::More; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
14 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
16 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
17 use lib 'lib'; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
18 use Test::Nginx; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
19 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
20 ############################################################################### |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
21 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
22 select STDERR; $| = 1; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
23 select STDOUT; $| = 1; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
24 |
441
cd61bacbbfe0
Tests: ensure that $uri is reset on URI parsing errors.
Sergey Kandaurov <pluknet@nginx.com>
parents:
264
diff
changeset
|
25 my $t = Test::Nginx->new()->has(qw/http rewrite proxy/)->plan(4); |
185
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
26 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
27 $t->write_file_expand('nginx.conf', <<'EOF'); |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
28 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
29 %%TEST_GLOBALS%% |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
30 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
31 daemon off; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
32 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
33 events { |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
34 } |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
35 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
36 http { |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
37 %%TEST_GLOBALS_HTTP%% |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
38 |
192
f2a48c528b3b
Tests: fixed http variables test, log entries order may differ.
Valentin Bartenev <ne@vbart.ru>
parents:
185
diff
changeset
|
39 log_format cc "$uri: $sent_http_cache_control"; |
185
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
40 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
41 server { |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
42 listen 127.0.0.1:8080; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
43 server_name localhost; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
44 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
45 access_log %%TESTDIR%%/cc.log cc; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
46 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
47 location / { |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
48 return 200 OK; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
49 } |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
50 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
51 location /set { |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
52 add_header Cache-Control max-age=3600; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
53 add_header Cache-Control private; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
54 add_header Cache-Control must-revalidate; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
55 return 200 OK; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
56 } |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
57 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
58 location /redefine { |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
59 expires epoch; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
60 proxy_pass http://127.0.0.1:8080/set; |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
61 } |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
62 } |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
63 } |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
64 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
65 EOF |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
66 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
67 $t->run(); |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
68 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
69 ############################################################################### |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
70 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
71 http_get('/'); |
441
cd61bacbbfe0
Tests: ensure that $uri is reset on URI parsing errors.
Sergey Kandaurov <pluknet@nginx.com>
parents:
264
diff
changeset
|
72 http_get('/../bad_uri'); |
185
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
73 http_get('/redefine'); |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
74 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
75 $t->stop(); |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
76 |
192
f2a48c528b3b
Tests: fixed http variables test, log entries order may differ.
Valentin Bartenev <ne@vbart.ru>
parents:
185
diff
changeset
|
77 my $log; |
185
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
78 |
192
f2a48c528b3b
Tests: fixed http variables test, log entries order may differ.
Valentin Bartenev <ne@vbart.ru>
parents:
185
diff
changeset
|
79 { |
f2a48c528b3b
Tests: fixed http variables test, log entries order may differ.
Valentin Bartenev <ne@vbart.ru>
parents:
185
diff
changeset
|
80 open LOG, $t->testdir() . '/cc.log' |
f2a48c528b3b
Tests: fixed http variables test, log entries order may differ.
Valentin Bartenev <ne@vbart.ru>
parents:
185
diff
changeset
|
81 or die("Can't open nginx access log file.\n"); |
f2a48c528b3b
Tests: fixed http variables test, log entries order may differ.
Valentin Bartenev <ne@vbart.ru>
parents:
185
diff
changeset
|
82 local $/; |
f2a48c528b3b
Tests: fixed http variables test, log entries order may differ.
Valentin Bartenev <ne@vbart.ru>
parents:
185
diff
changeset
|
83 $log = <LOG>; |
f2a48c528b3b
Tests: fixed http variables test, log entries order may differ.
Valentin Bartenev <ne@vbart.ru>
parents:
185
diff
changeset
|
84 close LOG; |
185
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
85 } |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
86 |
441
cd61bacbbfe0
Tests: ensure that $uri is reset on URI parsing errors.
Sergey Kandaurov <pluknet@nginx.com>
parents:
264
diff
changeset
|
87 like($log, qr!^: -$!m, 'no uri'); |
192
f2a48c528b3b
Tests: fixed http variables test, log entries order may differ.
Valentin Bartenev <ne@vbart.ru>
parents:
185
diff
changeset
|
88 like($log, qr!^/: -$!m, 'no header'); |
264
5ed8ef14f79c
Tests: fixed test of multiple Cache-Control headers.
Ruslan Ermilov <ru@nginx.com>
parents:
197
diff
changeset
|
89 like($log, qr!^/set: max-age=3600[,;] private[,;] must-revalidate$!m, |
192
f2a48c528b3b
Tests: fixed http variables test, log entries order may differ.
Valentin Bartenev <ne@vbart.ru>
parents:
185
diff
changeset
|
90 'multi headers'); |
185
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
91 |
192
f2a48c528b3b
Tests: fixed http variables test, log entries order may differ.
Valentin Bartenev <ne@vbart.ru>
parents:
185
diff
changeset
|
92 like($log, qr!^/redefine: no-cache$!m, 'ignoring headers with (hash == 0)'); |
185
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
93 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
94 ############################################################################### |