blob: 054ec437682d749b5618127fe1d9ebecac1157d3 [file] [log] [blame] [raw]
# vi:filetype=
use lib 'lib';
use Test::Nginx::Socket;
plan tests => 2 * blocks();
#$Test::Nginx::LWP::LogLevel = 'debug';
run_tests();
__DATA__
=== TEST 1: sanity (hit)
--- config
location ^~ /if {
set $res miss;
if ($arg_val ~* '^a') {
set $res hit;
echo $res;
}
echo $res;
}
--- request
GET /if?val=abc
--- response_body
hit
=== TEST 2: sanity (miss)
--- config
location ^~ /if {
set $res miss;
if ($arg_val ~* '^a') {
set $res hit;
echo $res;
}
echo $res;
}
--- request
GET /if?val=bcd
--- response_body
miss
=== TEST 3: proxy in if (hit)
--- config
location ^~ /if {
set $res miss;
if ($arg_val ~* '^a') {
set $res hit;
proxy_pass $scheme://127.0.0.1:$server_port/foo?res=$res;
}
proxy_pass $scheme://127.0.0.1:$server_port/foo?res=$res;
}
location /foo {
echo "res = $arg_res";
}
--- request
GET /if?val=abc
--- response_body
res = hit
=== TEST 4: proxy in if (miss)
--- config
location ^~ /if {
set $res miss;
if ($arg_val ~* '^a') {
set $res hit;
proxy_pass $scheme://127.0.0.1:$server_port/foo?res=$res;
}
proxy_pass $scheme://127.0.0.1:$server_port/foo?res=$res;
}
location /foo {
echo "res = $arg_res";
}
--- request
GET /if?val=bcd
--- response_body
res = miss
=== TEST 5: if too long url (hit)
--- config
location /foo {
if ($request_uri ~ '.{20,}') {
echo too long;
}
echo ok;
}
--- request
GET /foo?a=12345678901234567890
--- response_body
too long
=== TEST 6: if too long url (miss)
--- config
location /foo {
if ($request_uri ~ '.{20,}') {
echo too long;
}
echo ok;
}
--- request
GET /foo?a=1234567890
--- response_body
ok
=== TEST 7: echo should be inherited by if blocks
--- config
location /foo {
if ($uri ~ 'foo') {
}
echo ok;
}
--- request
GET /foo
--- response_body
ok
=== TEST 8: echo_after_body and echo_before_body should be inherited by if blocks
--- config
location /foo {
if ($uri ~ 'foo') {
}
echo_before_body -n 'hello';
echo_location /comma;
echo_after_body 'world';
}
location = /comma {
internal;
echo -n ', ';
}
--- request
GET /foo
--- response_body
hello, world