annotate rewrite.t @ 142:d732aaa5f370

Tests: two more return/error_page tests, with builtin error pages.
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 02 Nov 2010 08:20:58 +0300
parents 1e1975cd25ef
children c0ae29632905
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
65
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for rewrite module.
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::Nginx;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
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
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25 ->write_file_expand('nginx.conf', <<'EOF');
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
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
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29 master_process off;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30 daemon off;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32 events {
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33 }
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
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
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38 server {
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 listen 127.0.0.1:8080;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40 server_name localhost;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42 location / {
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43 rewrite ^ http://example.com/ redirect;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44 }
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
46 location /add {
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47 rewrite ^ http://example.com/?c=d redirect;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 }
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
49
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50 location /no {
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51 rewrite ^ http://example.com/?c=d? redirect;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
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
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
120 }
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
121 }
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
122
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
123 EOF
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
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
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
127 $t->run();
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
128
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
129 ###############################################################################
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
130
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
131 like(http_get('/'), qr!^Location: http://example.com/\x0d?$!ms, 'simple');
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
132 like(http_get('/?a=b'), qr!^Location: http://example.com/\?a=b\x0d?$!ms,
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
133 'simple with args');
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
134 like(http_get('/add'), qr!^Location: http://example.com/\?c=d\x0d?$!ms,
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
135 'add args');
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
136
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
137 like(http_get('/add?a=b'), qr!^Location: http://example.com/\?c=d&a=b\x0d?$!ms,
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
138 'add args with args');
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
139
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
140 like(http_get('/no?a=b'), qr!^Location: http://example.com/\?c=d\x0d?$!ms,
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
141 'no args with args');
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
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
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
226 ###############################################################################