annotate headers.t @ 1961:fe6f22da53ec default tip

Tests: tests for usage of discarded body. The client_max_body_size limit should be ignored when the request body is already discarded. In HTTP/1.x, this is done by checking the r->discard_body flag when the body is being discarded, and because r->headers_in.content_length_n is 0 when it's already discarded. This, however, does not happen with HTTP/2 and HTTP/3, and therefore "error_page 413" does not work without relaxing the limit. Further, with proxy_pass, r->headers_in.content_length_n is used to determine length of the request body, and therefore is not correct if discarding of the request body isn't yet complete. While discarding the request body, r->headers_in.content_length_n contains the rest of the body to discard (or, in case of chunked request body, the rest of the current chunk to discard). Similarly, the $content_length variable uses r->headers_in.content_length if available, and also incorrect. The $content_length variable is used when proxying with fastcgi_pass, grpc_pass, and uwsgi_pass (scgi_pass uses the value calculated based on the actual request body buffers, and therefore works correctly).
author Maxim Dounin <mdounin@mdounin.ru>
date Sat, 27 Apr 2024 18:55:50 +0300
parents 97c8280de681
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
456
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
2
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
3 # (C) Sergey Kandaurov
515
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
4 # (C) Maxim Dounin
456
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
5 # (C) Nginx, Inc.
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
6
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
7 # Tests for headers module.
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
8
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
9 ###############################################################################
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
10
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
11 use warnings;
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
12 use strict;
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
13
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
14 use Test::More;
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
15
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
16 BEGIN { use FindBin; chdir($FindBin::Bin); }
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
17
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
18 use lib 'lib';
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
19 use Test::Nginx;
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
20
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
21 ###############################################################################
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
22
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
23 select STDERR; $| = 1;
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
24 select STDOUT; $| = 1;
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
25
1212
0469ef3fcd34 Tests: added "expires modified" test with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
26 my $t = Test::Nginx->new()->has(qw/http proxy/)->plan(28)
456
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
27 ->write_file_expand('nginx.conf', <<'EOF');
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
28
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
29 %%TEST_GLOBALS%%
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
30
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
31 daemon off;
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
32
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
33 events {
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
34 }
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
35
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
36 http {
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
37 %%TEST_GLOBALS_HTTP%%
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
38
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
39 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
40 listen 127.0.0.1:8080;
456
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
41 server_name localhost;
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
42
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
43 add_header X-URI $uri;
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
44 add_header X-Always $uri always;
857
fcda5bd87ab2 Tests: added "add_header ... '' always" tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 568
diff changeset
45 add_header ETag foo always;
fcda5bd87ab2 Tests: added "add_header ... '' always" tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 568
diff changeset
46 add_header ETag '' always;
515
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
47 expires epoch;
456
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
48
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
49 location /t1 {
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
50 }
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
51
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
52 location /nx {
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
53 }
511
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
54
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
55 location /epoch {
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
56 expires epoch;
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
57 }
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
58
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
59 location /max {
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
60 expires max;
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
61 }
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
62
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
63 location /off {
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
64 expires off;
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
65 }
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
66
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
67 location /access {
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
68 expires 2048;
515
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
69
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
70 location /access_inner {
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
71 # inherited from outer
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
72 }
511
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
73 }
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
74
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
75 location /negative {
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
76 expires -2048;
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
77 }
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
78
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
79 location /daily {
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
80 expires @15h30m33s;
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
81 }
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
82
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
83 location /modified {
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
84 expires modified 2048;
1212
0469ef3fcd34 Tests: added "expires modified" test with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
85
0469ef3fcd34 Tests: added "expires modified" test with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
86 location /modified/proxy {
0469ef3fcd34 Tests: added "expires modified" test with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
87 proxy_pass http://127.0.0.1:8081/modified;
0469ef3fcd34 Tests: added "expires modified" test with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
88 }
511
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
89 }
515
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
90
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
91 location /var {
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
92 expires $arg_e;
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
93
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
94 location /var_inner {
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
95 # inherited from outer
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
96 }
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
97
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
98 location /var_modified {
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
99 expires modified $arg_e;
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
100 }
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
101 }
456
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
102 }
1212
0469ef3fcd34 Tests: added "expires modified" test with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
103
0469ef3fcd34 Tests: added "expires modified" test with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
104 server {
0469ef3fcd34 Tests: added "expires modified" test with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
105 listen 127.0.0.1:8081;
0469ef3fcd34 Tests: added "expires modified" test with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
106 server_name localhost;
0469ef3fcd34 Tests: added "expires modified" test with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
107
0469ef3fcd34 Tests: added "expires modified" test with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
108 add_header Last-Modified "Mon, 28 Sep 1970 06:00:00 GMT";
0469ef3fcd34 Tests: added "expires modified" test with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
109 }
456
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
110 }
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
111
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
112 EOF
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
113
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
114 $t->write_file('t1', '');
511
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
115 $t->write_file('epoch', '');
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
116 $t->write_file('max', '');
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
117 $t->write_file('off', '');
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
118 $t->write_file('access', '');
515
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
119 $t->write_file('access_inner', '');
511
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
120 $t->write_file('negative', '');
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
121 $t->write_file('daily', '');
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
122 $t->write_file('modified', '');
515
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
123 $t->write_file('var', '');
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
124 $t->write_file('var_inner', '');
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
125 $t->write_file('var_modified', '');
511
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
126
568
907e89fba9c3 Tests: removed TODO and try_run() checks for legacy versions.
Sergey Kandaurov <pluknet@nginx.com>
parents: 515
diff changeset
127 $t->run();
456
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
128
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
129 ###############################################################################
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
130
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
131 my $r;
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
132
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
133 # test for header field presence
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
134
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
135 $r = http_get('/t1');
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
136 like($r, qr/Cache-Control/, 'good expires');
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
137 like($r, qr/X-URI/, 'good add_header');
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
138 like($r, qr/X-Always/, 'good add_header always');
857
fcda5bd87ab2 Tests: added "add_header ... '' always" tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 568
diff changeset
139 unlike($r, qr/ETag/, 'good add_header always empty');
456
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
140
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
141 $r = http_get('/nx');
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
142 unlike($r, qr/Cache-Control/, 'bad expires');
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
143 unlike($r, qr/X-URI/, 'bad add_header');
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
144 like($r, qr/X-Always/, 'bad add_header always');
857
fcda5bd87ab2 Tests: added "add_header ... '' always" tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 568
diff changeset
145 unlike($r, qr/ETag/, 'bad add_header always empty');
fcda5bd87ab2 Tests: added "add_header ... '' always" tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 568
diff changeset
146
511
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
147 # various expires variants
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
148
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
149 like(http_get('/epoch'), qr/Expires:.*1970/, 'expires epoch');
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
150 like(http_get('/max'), qr/Expires:.*2037/, 'expires max');
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
151 unlike(http_get('/off'), qr/Expires:/, 'expires off');
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
152 like(http_get('/access'), qr/max-age=2048/, 'expires access');
515
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
153 like(http_get('/access_inner'), qr/max-age=2048/, 'expires inner');
511
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
154 like(http_get('/negative'), qr/no-cache/, 'expires negative');
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
155 like(http_get('/daily'), qr/Expires:.*:33 GMT/, 'expires daily');
512
a610ee837190 Tests: relaxed "expires modified" test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 511
diff changeset
156 like(http_get('/modified'), qr/max-age=204./, 'expires modified');
511
1e0818200b3f Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents: 456
diff changeset
157
1212
0469ef3fcd34 Tests: added "expires modified" test with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
158 # "expires modified" with proxy
0469ef3fcd34 Tests: added "expires modified" test with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
159
0469ef3fcd34 Tests: added "expires modified" test with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
160 like(http_get('/modified/proxy'), qr/Expires: Mon, 28 Sep 1970 06:34:08 GMT/,
0469ef3fcd34 Tests: added "expires modified" test with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
161 'expires modified proxy');
0469ef3fcd34 Tests: added "expires modified" test with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
162
515
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
163 # expires with variables
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
164
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
165 like(http_get('/var?e=epoch'), qr/Expires:.*1970/, 'expires var epoch');
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
166 like(http_get('/var?e=max'), qr/Expires:.*2037/, 'expires var max');
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
167 unlike(http_get('/var?e=off'), qr/Expires:/, 'expires var off');
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
168 like(http_get('/var?e=2048'), qr/max-age=2048/, 'expires var access');
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
169 like(http_get('/var_inner?e=2048'), qr/max-age=2048/, 'expires var inner');
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
170 like(http_get('/var?e=-2048'), qr/no-cache/, 'expires var negative');
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
171 like(http_get('/var?e=@33s'), qr/Expires:.*:33 GMT/, 'expires var daily');
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
172 like(http_get('/var_modified?e=2048'), qr/max-age=204./,
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
173 'expires var modified');
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
174
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
175 # some invalid cases
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
176
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
177 unlike(http_get('/var'), qr/Expires/, 'expires var empty');
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
178 unlike(http_get('/var?e=bad'), qr/Expires/, 'expires var bad');
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
179 unlike(http_get('/var_modified?e=epoch'), qr/Expires/,
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
180 'expires var modified epoch');
9f972a386434 Tests: expires with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents: 512
diff changeset
181
456
858e93175802 Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
182 ###############################################################################