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
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
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 ###############################################################################