Mercurial > hg > nginx-tests
annotate headers.t @ 512:a610ee837190
Tests: relaxed "expires modified" test.
Running tests takes some time, and hence the max-age= value returned
may be smaller.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 10 Dec 2014 18:48:40 +0300 |
parents | 1e0818200b3f |
children | 9f972a386434 |
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 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
5 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
6 # Tests for headers module. |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
7 |
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 use warnings; |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
11 use strict; |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
12 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
14 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
16 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
17 use lib 'lib'; |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
18 use Test::Nginx; |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
19 |
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 select STDERR; $| = 1; |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
23 select STDOUT; $| = 1; |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
24 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
25 my $t = Test::Nginx->new()->has(qw/http/) |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
26 ->write_file_expand('nginx.conf', <<'EOF'); |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
27 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
28 %%TEST_GLOBALS%% |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
29 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
30 daemon off; |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
31 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
32 events { |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
33 } |
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 http { |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
36 %%TEST_GLOBALS_HTTP%% |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
37 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
38 server { |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
39 listen 127.0.0.1:8080; |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
40 server_name localhost; |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
41 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
42 add_header X-URI $uri; |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
43 add_header X-Always $uri always; |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
44 expires epoch; |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
45 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
46 location /t1 { |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
47 } |
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 /nx { |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
50 } |
511
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
51 |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
52 location /epoch { |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
53 expires epoch; |
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 |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
56 location /max { |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
57 expires max; |
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 |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
60 location /off { |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
61 expires off; |
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 |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
64 location /access { |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
65 expires 2048; |
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 |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
68 location /negative { |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
69 expires -2048; |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
70 } |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
71 |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
72 location /daily { |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
73 expires @15h30m33s; |
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 |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
76 location /modified { |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
77 expires modified 2048; |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
78 } |
456
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
79 } |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
80 } |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
81 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
82 EOF |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
83 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
84 $t->write_file('t1', ''); |
511
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
85 $t->write_file('epoch', ''); |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
86 $t->write_file('max', ''); |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
87 $t->write_file('off', ''); |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
88 $t->write_file('access', ''); |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
89 $t->write_file('negative', ''); |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
90 $t->write_file('daily', ''); |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
91 $t->write_file('modified', ''); |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
92 |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
93 $t->try_run('no add_header always')->plan(13); |
456
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
94 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
95 ############################################################################### |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
96 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
97 my $r; |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
98 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
99 # test for header field presence |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
100 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
101 $r = http_get('/t1'); |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
102 like($r, qr/Cache-Control/, 'good expires'); |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
103 like($r, qr/X-URI/, 'good add_header'); |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
104 like($r, qr/X-Always/, 'good add_header always'); |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
105 |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
106 $r = http_get('/nx'); |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
107 unlike($r, qr/Cache-Control/, 'bad expires'); |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
108 unlike($r, qr/X-URI/, 'bad add_header'); |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
109 like($r, qr/X-Always/, 'bad add_header always'); |
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
110 |
511
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
111 # various expires variants |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
112 |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
113 like(http_get('/epoch'), qr/Expires:.*1970/, 'expires epoch'); |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
114 like(http_get('/max'), qr/Expires:.*2037/, 'expires max'); |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
115 unlike(http_get('/off'), qr/Expires:/, 'expires off'); |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
116 like(http_get('/access'), qr/max-age=2048/, 'expires access'); |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
117 like(http_get('/negative'), qr/no-cache/, 'expires negative'); |
1e0818200b3f
Tests: various expires variants.
Maxim Dounin <mdounin@mdounin.ru>
parents:
456
diff
changeset
|
118 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
|
119 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
|
120 |
456
858e93175802
Tests: headers module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
121 ############################################################################### |