annotate rewrite.t @ 141:1e1975cd25ef

Tests: error_page and return related tests, dav tests.
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 02 Nov 2010 06:49:42 +0300
parents 8ac1faaddd2c
children d732aaa5f370
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
141
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
24 my $t = Test::Nginx->new()->has(qw/http rewrite/)->plan(17)
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
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
62 location /error405return204 {
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
63 error_page 405 /return204;
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
64 return 405;
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
65 }
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
66
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
67 location /error405return200 {
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
68 error_page 405 /return200;
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
69 return 405;
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
70 }
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
71
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
72 location /file.html {
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
73 }
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 location /return200text {
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
76 return 200 "text";
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
77 }
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
78
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
79 location /return404text {
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
80 return 404 "text";
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
81 }
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
82
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
83 location /return302text {
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
84 return 302 "text";
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
85 }
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
86
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
87 location /error405return200text {
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
88 error_page 405 /return200text;
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
89 return 405;
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
90 }
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 location /error302return200text {
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
93 error_page 302 /return200text;
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
94 return 302 "text";
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
95 }
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 location /error405return302text {
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
98 error_page 405 /return302text;
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
99 return 405;
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
100 }
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 location /error405rewrite {
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
103 error_page 405 /;
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
104 return 405;
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
105 }
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 location /error405directory {
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
108 error_page 405 /directory;
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
109 return 405;
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
110 }
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 location /directory {
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
113 }
65
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
114 }
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
115 }
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
116
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
117 EOF
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
118
141
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
119 mkdir($t->testdir() . '/directory');
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
120
65
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
121 $t->run();
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 ###############################################################################
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
124
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
125 like(http_get('/'), qr!^Location: http://example.com/\x0d?$!ms, 'simple');
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
126 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
127 'simple with args');
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
128 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
129 'add args');
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('/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
132 'add args with args');
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
133
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
134 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
135 'no args with args');
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
136
141
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
137 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
138 like(http_get('/return200'), qr!200 OK!, 'return 200');
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
139
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
140 TODO: {
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
141 local $TODO = 'not yet';
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
142
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
143 # 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
144 # 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
145 # to make problem clear
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
146
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
147 my $r = http(<<EOF);
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
148 GET /error405return204 HTTP/1.1
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
149 Host: localhost
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
150 Connection: close
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 EOF
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
153
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
154 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
155 'error 405 return 204');
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
156
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
157 # 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
158 # 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
159 # in /error405return200text below)
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 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
162 'error 405 return 200');
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
163
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
164 }
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 # 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
167 # 0.8.42
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
168
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
169 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
170 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
171
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
172 TODO: {
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
173 local $TODO = 'not yet';
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 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
176 '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
177
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
178 }
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
179
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
180 # 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
181 # 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
182 # 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
183
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
184 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
185 'return 302 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 TODO: {
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
188 local $TODO = 'not yet';
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
189
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
190 like(http_get('/error302return200text'),
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
191 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
192 'error 302 return 200 text');
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
193
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
194 }
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 # 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
200 # 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
201 # 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
202
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
203 like(http_get('/error405return302text'),
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
204 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
205 'error 405 return 302 text');
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
206
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
207 like(http_get('/error405rewrite'),
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
208 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
209 'error 405 rewrite redirect');
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
210
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
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
213 like(http_get('/error405directory'),
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
214 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
215 'error 405 directory redirect');
1e1975cd25ef Tests: error_page and return related tests, dav tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
216
65
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
217 ###############################################################################