Mercurial > hg > nginx-tests
annotate http_variables.t @ 1021:ebdf239722b9
Tests: relaxed proxy_cache_lock.t nolock tests to fix on Solaris.
Assumed that the order of responses being arrived in nolock case may be ignored.
An important part of such case is that the only last response should be cached.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Fri, 02 Sep 2016 12:17:35 +0300 |
parents | 577a5899a33d |
children | cb46ac65d50e |
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 |
1000
577a5899a33d
Tests: fixed plan in a previous change.
Sergey Kandaurov <pluknet@nginx.com>
parents:
999
diff
changeset
|
25 my $t = Test::Nginx->new()->has(qw/http rewrite proxy/)->plan(5); |
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 { |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
42 listen 127.0.0.1:8080; |
185
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; |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
60 proxy_pass http://127.0.0.1:8080/set; |
185
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
61 } |
999
ff12dfdb0cda
Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
62 |
ff12dfdb0cda
Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
63 location /limit_rate { |
ff12dfdb0cda
Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
64 set $limit_rate 40k; |
ff12dfdb0cda
Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
65 add_header X-Rate $limit_rate; |
ff12dfdb0cda
Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
66 return 200 OK; |
ff12dfdb0cda
Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
67 } |
185
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 EOF |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
72 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
73 $t->run(); |
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 ############################################################################### |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
76 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
77 http_get('/'); |
441
cd61bacbbfe0
Tests: ensure that $uri is reset on URI parsing errors.
Sergey Kandaurov <pluknet@nginx.com>
parents:
264
diff
changeset
|
78 http_get('/../bad_uri'); |
185
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
79 http_get('/redefine'); |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
80 |
999
ff12dfdb0cda
Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
81 # $limit_rate is a special variable that has its own set_handler / get_handler |
ff12dfdb0cda
Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
82 |
ff12dfdb0cda
Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
83 like(http_get('/limit_rate'), qr/X-Rate: 40960/, 'limit_rate handlers'); |
ff12dfdb0cda
Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
84 |
185
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
85 $t->stop(); |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
86 |
908
adf5671391ac
Tests: use read_file subroutine in several tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
447
diff
changeset
|
87 my $log = $t->read_file('cc.log'); |
441
cd61bacbbfe0
Tests: ensure that $uri is reset on URI parsing errors.
Sergey Kandaurov <pluknet@nginx.com>
parents:
264
diff
changeset
|
88 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
|
89 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
|
90 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
|
91 'multi headers'); |
185
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
92 |
192
f2a48c528b3b
Tests: fixed http variables test, log entries order may differ.
Valentin Bartenev <ne@vbart.ru>
parents:
185
diff
changeset
|
93 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
|
94 |
43fe964de06a
Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
95 ############################################################################### |