Mercurial > hg > nginx-tests
annotate proxy-xar.t @ 114:44b281ac4bc6
Tests: add server name tests, including fancy regex ones.
With test config nginx will fail to start as of 0.8.28 due to incorrect
conversion of regular expressions to lowercase. Patch was discussed on
mailing list and will be included in next release.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 30 Nov 2009 14:47:17 +0300 |
parents | 1c0ec30614c6 |
children | 8ac1faaddd2c |
rev | line source |
---|---|
82
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
2 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
3 # (C) Maxim Dounin |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
4 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
5 # Tests for proxy X-Accel-Redirect functionality. |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
6 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
7 ############################################################################### |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
8 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
9 use warnings; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
10 use strict; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
11 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
12 use Test::More; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
13 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
14 BEGIN { use FindBin; chdir($FindBin::Bin); } |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
15 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
16 use lib 'lib'; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
17 use Test::Nginx; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
18 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
19 ############################################################################### |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
20 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
21 select STDERR; $| = 1; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
22 select STDOUT; $| = 1; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
23 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
24 my $t = Test::Nginx->new()->has('rewrite')->plan(8); |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
25 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
26 $t->write_file_expand('nginx.conf', <<'EOF'); |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
27 |
107
1c0ec30614c6
Tests: add TEST_GLOBALS and TEST_GLOBALS_HTTP config chunks.
Maxim Dounin <mdounin@mdounin.ru>
parents:
82
diff
changeset
|
28 %%TEST_GLOBALS%% |
1c0ec30614c6
Tests: add TEST_GLOBALS and TEST_GLOBALS_HTTP config chunks.
Maxim Dounin <mdounin@mdounin.ru>
parents:
82
diff
changeset
|
29 |
82
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
30 master_process off; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
31 daemon off; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
32 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
33 events { |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
34 } |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
35 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
36 http { |
107
1c0ec30614c6
Tests: add TEST_GLOBALS and TEST_GLOBALS_HTTP config chunks.
Maxim Dounin <mdounin@mdounin.ru>
parents:
82
diff
changeset
|
37 %%TEST_GLOBALS_HTTP%% |
82
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
38 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
39 server { |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
40 listen 127.0.0.1:8080; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
41 server_name localhost; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
42 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
43 location /proxy { |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
44 proxy_pass http://127.0.0.1:8080/return-xar; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
45 } |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
46 location /return-xar { |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
47 add_header X-Accel-Redirect /index.html; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
48 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
49 # this headers will be preserved on |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
50 # X-Accel-Redirect |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
51 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
52 add_header Content-Type text/blah; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
53 add_header Set-Cookie blah=blah; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
54 add_header Content-Disposition attachment; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
55 add_header Cache-Control no-cache; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
56 add_header Expires fake; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
57 add_header Accept-Ranges parrots; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
58 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
59 # others won't be |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
60 add_header Something other; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
61 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
62 return 204; |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
63 } |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
64 } |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
65 } |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
66 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
67 EOF |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
68 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
69 $t->write_file('index.html', 'SEE-THIS'); |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
70 $t->run(); |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
71 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
72 ############################################################################### |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
73 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
74 my $r = http_get('/proxy'); |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
75 like($r, qr/SEE-THIS/, 'X-Accel-Redirect works'); |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
76 like($r, qr/^Content-Type: text\/blah/m, 'Content-Type preserved'); |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
77 like($r, qr/^Set-Cookie: blah=blah/m, 'Set-Cookie preserved'); |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
78 like($r, qr/^Content-Disposition: attachment/m, 'Content-Disposition preserved'); |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
79 like($r, qr/^Cache-Control: no-cache/m, 'Cache-Control preserved'); |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
80 like($r, qr/^Expires: fake/m, 'Expires preserved'); |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
81 like($r, qr/^Accept-Ranges: parrots/m, 'Accept-Ranges preserved'); |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
82 unlike($r, qr/^Something/m, 'other headers stripped'); |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
83 |
a2fc9b9e9a2b
Tests: add X-Accel-Redirect tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
84 ############################################################################### |