Mercurial > hg > nginx-tests
annotate http_absolute_redirect.t @ 1701:408fe0dd3fed
Tests: fixed mail_imap_ssl.t too long shutdown.
Prior to literals support in IMAP test backend (e7f0b4ca0a1a), early backend
response was treated as invalid, with subsequent proxy connection close.
Now that the connection continues successfully, this requires connection
close before nginx shutdown. Otherwise, it would wait for proxy_timeout.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Thu, 17 Jun 2021 19:52:36 +0300 |
parents | 0d8531f744bc |
children | 77a9e393ed46 |
rev | line source |
---|---|
1103
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
2 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
3 # (C) Sergey Kandaurov |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
5 |
1691
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
6 # Tests for absolute_redirect directive and Location escaping. |
1103
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
7 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
9 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
11 use strict; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
12 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
14 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
16 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
17 use lib 'lib'; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
18 use Test::Nginx; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
19 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
20 ############################################################################### |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
21 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
22 select STDERR; $| = 1; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
23 select STDOUT; $| = 1; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
24 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
25 my $t = Test::Nginx->new()->has(qw/http proxy rewrite/) |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
26 ->write_file_expand('nginx.conf', <<'EOF'); |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
27 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
28 %%TEST_GLOBALS%% |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
29 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
30 daemon off; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
31 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
32 events { |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
33 } |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
34 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
35 http { |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
36 %%TEST_GLOBALS_HTTP%% |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
37 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
38 absolute_redirect off; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
39 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
40 server { |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
41 listen 127.0.0.1:8080; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
42 server_name on; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
43 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
44 absolute_redirect on; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
45 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
46 location / { } |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
47 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
48 location /auto/ { |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
49 proxy_pass http://127.0.0.1:8080; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
50 } |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
51 |
1691
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
52 location "/auto sp/" { |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
53 proxy_pass http://127.0.0.1:8080; |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
54 } |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
55 |
1103
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
56 location /return301 { |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
57 return 301 /redirect; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
58 } |
1150
ccf134a800ae
Tests: added Location tests with alias for dav and static modules.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1103
diff
changeset
|
59 |
ccf134a800ae
Tests: added Location tests with alias for dav and static modules.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1103
diff
changeset
|
60 location /i/ { |
ccf134a800ae
Tests: added Location tests with alias for dav and static modules.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1103
diff
changeset
|
61 alias %%TESTDIR%%/; |
ccf134a800ae
Tests: added Location tests with alias for dav and static modules.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1103
diff
changeset
|
62 } |
1103
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
63 } |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
64 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
65 server { |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
66 listen 127.0.0.1:8080; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
67 server_name off; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
68 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
69 location / { } |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
70 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
71 location /auto/ { |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
72 proxy_pass http://127.0.0.1:8080; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
73 } |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
74 |
1691
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
75 location "/auto sp/" { |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
76 proxy_pass http://127.0.0.1:8080; |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
77 } |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
78 |
1103
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
79 location /return301 { |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
80 return 301 /redirect; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
81 } |
1150
ccf134a800ae
Tests: added Location tests with alias for dav and static modules.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1103
diff
changeset
|
82 |
ccf134a800ae
Tests: added Location tests with alias for dav and static modules.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1103
diff
changeset
|
83 location /i/ { |
ccf134a800ae
Tests: added Location tests with alias for dav and static modules.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1103
diff
changeset
|
84 alias %%TESTDIR%%/; |
ccf134a800ae
Tests: added Location tests with alias for dav and static modules.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1103
diff
changeset
|
85 } |
1103
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
86 } |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
87 } |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
88 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
89 EOF |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
90 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
91 mkdir($t->testdir() . '/dir'); |
1691
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
92 mkdir($t->testdir() . '/dir sp'); |
1103
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
93 |
1691
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
94 $t->run()->plan(18); |
1103
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
95 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
96 ############################################################################### |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
97 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
98 my $p = port(8080); |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
99 |
1153
818fbc9d1c29
Tests: check Location EoLs in http_absolute_redirect.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1150
diff
changeset
|
100 like(get('on', '/dir'), qr!Location: http://on:$p/dir/\x0d?$!m, 'directory'); |
818fbc9d1c29
Tests: check Location EoLs in http_absolute_redirect.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1150
diff
changeset
|
101 like(get('on', '/i/dir'), qr!Location: http://on:$p/i/dir/\x0d?$!m, |
818fbc9d1c29
Tests: check Location EoLs in http_absolute_redirect.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1150
diff
changeset
|
102 'directory alias'); |
1691
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
103 |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
104 TODO: { |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
105 local $TODO = 'not yet' unless $t->has_version('1.21.0'); |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
106 |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
107 like(get('on', '/dir%20sp'), qr!Location: http://on:$p/dir%20sp/\x0d?$!m, |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
108 'directory escaped'); |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
109 like(get('on', '/dir%20sp?a=b'), |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
110 qr!Location: http://on:$p/dir%20sp/\?a=b\x0d?$!m, |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
111 'directory escaped args'); |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
112 |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
113 } |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
114 |
1153
818fbc9d1c29
Tests: check Location EoLs in http_absolute_redirect.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1150
diff
changeset
|
115 like(get('on', '/auto'), qr!Location: http://on:$p/auto/\x0d?$!m, 'auto'); |
1154
2c120aea4362
Tests: added auto redirect tests with args.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1153
diff
changeset
|
116 like(get('on', '/auto?a=b'), qr!Location: http://on:$p/auto/\?a=b\x0d?$!m, |
2c120aea4362
Tests: added auto redirect tests with args.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1153
diff
changeset
|
117 'auto args'); |
1691
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
118 |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
119 TODO: { |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
120 local $TODO = 'not yet' unless $t->has_version('1.21.0'); |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
121 |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
122 like(get('on', '/auto%20sp'), qr!Location: http://on:$p/auto%20sp/\x0d?$!m, |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
123 'auto escaped'); |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
124 like(get('on', '/auto%20sp?a=b'), |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
125 qr!Location: http://on:$p/auto%20sp/\?a=b\x0d?$!m, |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
126 'auto escaped args'); |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
127 |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
128 } |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
129 |
1153
818fbc9d1c29
Tests: check Location EoLs in http_absolute_redirect.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1150
diff
changeset
|
130 like(get('on', '/return301'), qr!Location: http://on:$p/redirect\x0d?$!m, |
818fbc9d1c29
Tests: check Location EoLs in http_absolute_redirect.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1150
diff
changeset
|
131 'return'); |
1103
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
132 |
1153
818fbc9d1c29
Tests: check Location EoLs in http_absolute_redirect.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1150
diff
changeset
|
133 like(get('off', '/dir'), qr!Location: /dir/\x0d?$!m, 'off directory'); |
818fbc9d1c29
Tests: check Location EoLs in http_absolute_redirect.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1150
diff
changeset
|
134 like(get('off', '/i/dir'), qr!Location: /i/dir/\x0d?$!m, 'off directory alias'); |
1691
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
135 |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
136 TODO: { |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
137 local $TODO = 'not yet' unless $t->has_version('1.21.0'); |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
138 |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
139 like(get('off', '/dir%20sp'), qr!Location: /dir%20sp/\x0d?$!m, |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
140 'off directory escaped'); |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
141 like(get('off', '/dir%20sp?a=b'), qr!Location: /dir%20sp/\?a=b\x0d?$!m, |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
142 'off directory escaped args'); |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
143 |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
144 } |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
145 |
1153
818fbc9d1c29
Tests: check Location EoLs in http_absolute_redirect.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1150
diff
changeset
|
146 like(get('off', '/auto'), qr!Location: /auto/\x0d?$!m, 'off auto'); |
1154
2c120aea4362
Tests: added auto redirect tests with args.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1153
diff
changeset
|
147 like(get('off', '/auto?a=b'), qr!Location: /auto/\?a=b\x0d?$!m, |
2c120aea4362
Tests: added auto redirect tests with args.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1153
diff
changeset
|
148 'off auto args'); |
1691
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
149 |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
150 TODO: { |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
151 local $TODO = 'not yet' unless $t->has_version('1.21.0'); |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
152 |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
153 like(get('off', '/auto%20sp'), qr!Location: /auto%20sp/\x0d?$!m, |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
154 'auto escaped'); |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
155 like(get('off', '/auto%20sp?a=b'), qr!Location: /auto%20sp/\?a=b\x0d?$!m, |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
156 'auto escaped args'); |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
157 |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
158 } |
0d8531f744bc
Tests: added Location header escaping tests (ticket #882).
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
159 |
1153
818fbc9d1c29
Tests: check Location EoLs in http_absolute_redirect.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1150
diff
changeset
|
160 like(get('off', '/return301'), qr!Location: /redirect\x0d?$!m, 'off return'); |
1103
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
161 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
162 ############################################################################### |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
163 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
164 sub get { |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
165 my ($host, $uri) = @_; |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
166 http(<<EOF); |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
167 GET $uri HTTP/1.0 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
168 Host: $host |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
169 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
170 EOF |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
171 } |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
172 |
71bba21ea3ed
Tests: absolute_redirect and related tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
173 ############################################################################### |