Mercurial > hg > nginx-tests
annotate rewrite.t @ 152:c9be30f65be7
Tests: various password schemes are in 1.0.3.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 01 Jun 2011 14:11:42 +0400 |
parents | d732aaa5f370 |
children | c0ae29632905 |
rev | line source |
---|---|
65 | 1 #!/usr/bin/perl |
2 | |
3 # (C) Maxim Dounin | |
4 | |
5 # Tests for rewrite module. | |
6 | |
7 ############################################################################### | |
8 | |
9 use warnings; | |
10 use strict; | |
11 | |
12 use Test::More; | |
13 | |
14 BEGIN { use FindBin; chdir($FindBin::Bin); } | |
15 | |
16 use lib 'lib'; | |
17 use Test::Nginx; | |
18 | |
19 ############################################################################### | |
20 | |
21 select STDERR; $| = 1; | |
22 select STDOUT; $| = 1; | |
23 | |
142
d732aaa5f370
Tests: two more return/error_page tests, with builtin error pages.
Maxim Dounin <mdounin@mdounin.ru>
parents:
141
diff
changeset
|
24 my $t = Test::Nginx->new()->has(qw/http rewrite/)->plan(19) |
65 | 25 ->write_file_expand('nginx.conf', <<'EOF'); |
26 | |
107
1c0ec30614c6
Tests: add TEST_GLOBALS and TEST_GLOBALS_HTTP config chunks.
Maxim Dounin <mdounin@mdounin.ru>
parents:
70
diff
changeset
|
27 %%TEST_GLOBALS%% |
1c0ec30614c6
Tests: add TEST_GLOBALS and TEST_GLOBALS_HTTP config chunks.
Maxim Dounin <mdounin@mdounin.ru>
parents:
70
diff
changeset
|
28 |
65 | 29 master_process off; |
30 daemon off; | |
31 | |
32 events { | |
33 } | |
34 | |
35 http { | |
107
1c0ec30614c6
Tests: add TEST_GLOBALS and TEST_GLOBALS_HTTP config chunks.
Maxim Dounin <mdounin@mdounin.ru>
parents:
70
diff
changeset
|
36 %%TEST_GLOBALS_HTTP%% |
65 | 37 |
38 server { | |
39 listen 127.0.0.1:8080; | |
40 server_name localhost; | |
41 | |
42 location / { | |
43 rewrite ^ http://example.com/ redirect; | |
44 } | |
45 | |
46 location /add { | |
47 rewrite ^ http://example.com/?c=d redirect; | |
48 } | |
49 | |
50 location /no { | |
51 rewrite ^ http://example.com/?c=d? redirect; | |
52 } | |
141
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
53 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
54 location /return204 { |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
55 return 204; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
56 } |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
57 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
58 location /return200 { |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
59 return 200; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
60 } |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
61 |
142
d732aaa5f370
Tests: two more return/error_page tests, with builtin error pages.
Maxim Dounin <mdounin@mdounin.ru>
parents:
141
diff
changeset
|
62 location /return405 { |
d732aaa5f370
Tests: two more return/error_page tests, with builtin error pages.
Maxim Dounin <mdounin@mdounin.ru>
parents:
141
diff
changeset
|
63 return 405; |
d732aaa5f370
Tests: two more return/error_page tests, with builtin error pages.
Maxim Dounin <mdounin@mdounin.ru>
parents:
141
diff
changeset
|
64 } |
d732aaa5f370
Tests: two more return/error_page tests, with builtin error pages.
Maxim Dounin <mdounin@mdounin.ru>
parents:
141
diff
changeset
|
65 |
d732aaa5f370
Tests: two more return/error_page tests, with builtin error pages.
Maxim Dounin <mdounin@mdounin.ru>
parents:
141
diff
changeset
|
66 location /error404return405 { |
d732aaa5f370
Tests: two more return/error_page tests, with builtin error pages.
Maxim Dounin <mdounin@mdounin.ru>
parents:
141
diff
changeset
|
67 error_page 404 /return405; |
d732aaa5f370
Tests: two more return/error_page tests, with builtin error pages.
Maxim Dounin <mdounin@mdounin.ru>
parents:
141
diff
changeset
|
68 return 404; |
d732aaa5f370
Tests: two more return/error_page tests, with builtin error pages.
Maxim Dounin <mdounin@mdounin.ru>
parents:
141
diff
changeset
|
69 } |
d732aaa5f370
Tests: two more return/error_page tests, with builtin error pages.
Maxim Dounin <mdounin@mdounin.ru>
parents:
141
diff
changeset
|
70 |
141
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
71 location /error405return204 { |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
72 error_page 405 /return204; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
73 return 405; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
74 } |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
75 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
76 location /error405return200 { |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
77 error_page 405 /return200; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
78 return 405; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
79 } |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
80 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
81 location /return200text { |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
82 return 200 "text"; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
83 } |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
84 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
85 location /return404text { |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
86 return 404 "text"; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
87 } |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
88 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
89 location /return302text { |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
90 return 302 "text"; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
91 } |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
92 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
93 location /error405return200text { |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
94 error_page 405 /return200text; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
95 return 405; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
96 } |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
97 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
98 location /error302return200text { |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
99 error_page 302 /return200text; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
100 return 302 "text"; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
101 } |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
102 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
103 location /error405return302text { |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
104 error_page 405 /return302text; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
105 return 405; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
106 } |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
107 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
108 location /error405rewrite { |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
109 error_page 405 /; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
110 return 405; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
111 } |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
112 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
113 location /error405directory { |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
114 error_page 405 /directory; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
115 return 405; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
116 } |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
117 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
118 location /directory { |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
119 } |
65 | 120 } |
121 } | |
122 | |
123 EOF | |
124 | |
141
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
125 mkdir($t->testdir() . '/directory'); |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
126 |
65 | 127 $t->run(); |
128 | |
129 ############################################################################### | |
130 | |
131 like(http_get('/'), qr!^Location: http://example.com/\x0d?$!ms, 'simple'); | |
132 like(http_get('/?a=b'), qr!^Location: http://example.com/\?a=b\x0d?$!ms, | |
133 'simple with args'); | |
134 like(http_get('/add'), qr!^Location: http://example.com/\?c=d\x0d?$!ms, | |
135 'add args'); | |
136 | |
137 like(http_get('/add?a=b'), qr!^Location: http://example.com/\?c=d&a=b\x0d?$!ms, | |
138 'add args with args'); | |
139 | |
140 like(http_get('/no?a=b'), qr!^Location: http://example.com/\?c=d\x0d?$!ms, | |
141 'no args with args'); | |
142 | |
141
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
143 like(http_get('/return204'), qr!204 No Content!, 'return 204'); |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
144 like(http_get('/return200'), qr!200 OK!, 'return 200'); |
142
d732aaa5f370
Tests: two more return/error_page tests, with builtin error pages.
Maxim Dounin <mdounin@mdounin.ru>
parents:
141
diff
changeset
|
145 like(http_get('/return405'), qr!HTTP/1.1 405.*body!ms, 'return 405'); |
d732aaa5f370
Tests: two more return/error_page tests, with builtin error pages.
Maxim Dounin <mdounin@mdounin.ru>
parents:
141
diff
changeset
|
146 |
d732aaa5f370
Tests: two more return/error_page tests, with builtin error pages.
Maxim Dounin <mdounin@mdounin.ru>
parents:
141
diff
changeset
|
147 like(http_get('/error404return405'), qr!HTTP/1.1 404!, 'error 404 return 405'); |
141
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
148 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
149 TODO: { |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
150 local $TODO = 'not yet'; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
151 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
152 # status code should be 405, and entity body is expected (vs. normal 204 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
153 # replies which doesn't expect to have body); use HTTP/1.1 for test |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
154 # to make problem clear |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
155 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
156 my $r = http(<<EOF); |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
157 GET /error405return204 HTTP/1.1 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
158 Host: localhost |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
159 Connection: close |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
160 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
161 EOF |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
162 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
163 like($r, qr/HTTP\/1.1 405.*(Content-Length|\x0d\0a0\x0d\x0a)/ms, |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
164 'error 405 return 204'); |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
165 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
166 # the same test, but with return 200. this doesn't have special |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
167 # handling and returns builtin error page body (the same problem as |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
168 # in /error405return200text below) |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
169 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
170 like(http_get('/error405return200'), qr/HTTP\/1.1 405(?!.*body)/ms, |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
171 'error 405 return 200'); |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
172 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
173 } |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
174 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
175 # tests involving return with two arguments, as introduced in |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
176 # 0.8.42 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
177 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
178 like(http_get('/return200text'), qr!text\z!, 'return 200 text'); |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
179 like(http_get('/return404text'), qr!text\z!, 'return 404 text'); |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
180 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
181 TODO: { |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
182 local $TODO = 'not yet'; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
183 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
184 like(http_get('/error405return200text'), qr!HTTP/1.1 405.*text\z!ms, |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
185 'error 405 to return 200 text'); |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
186 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
187 } |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
188 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
189 # return 302 is somewhat special: it adds Location header instead of |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
190 # body text. additionally it doesn't sent reply directly (as it's done for |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
191 # other returns since 0.8.42) but instead returns NGX_HTTP_* code |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
192 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
193 like(http_get('/return302text'), qr!HTTP/1.1 302.*Location: text!ms, |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
194 'return 302 text'); |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
195 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
196 TODO: { |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
197 local $TODO = 'not yet'; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
198 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
199 like(http_get('/error302return200text'), |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
200 qr!HTTP/1.1 302.*Location: text.*text\z!ms, |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
201 'error 302 return 200 text'); |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
202 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
203 } |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
204 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
205 TODO: { |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
206 local $TODO = 'not yet'; |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
207 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
208 # in contrast to other return's this shouldn't preserve original status code |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
209 # from error, and the same applies to "rewrite ... redirect" as an error |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
210 # handler; both should in line with e.g. directory redirect as well |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
211 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
212 like(http_get('/error405return302text'), |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
213 qr!HTTP/1.1 302.*Location: text!ms, |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
214 'error 405 return 302 text'); |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
215 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
216 like(http_get('/error405rewrite'), |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
217 qr!HTTP/1.1 302.*Location: http://example.com/!ms, |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
218 'error 405 rewrite redirect'); |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
219 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
220 } |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
221 |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
222 like(http_get('/error405directory'), |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
223 qr!HTTP/1.1 301.*Location: http://!ms, |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
224 'error 405 directory redirect'); |
1e1975cd25ef
Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
121
diff
changeset
|
225 |
65 | 226 ############################################################################### |