blob: c82085f964588b322a88024b6edd724f5ea043db [file] [log] [blame] [raw]
# vim:set ft= ts=4 sw=4 et fdm=marker:
use lib 'lib';
use Test::Nginx::Socket::Lua;
#worker_connections(1014);
#master_on();
#workers(2);
#log_level('warn');
repeat_each(2);
#repeat_each(1);
plan tests => repeat_each() * (blocks() * 3 + 2);
#no_diff();
#no_long_string();
run_tests();
__DATA__
=== TEST 1: set_by_lua (if fails)
--- config
location /t {
set $true $arg_a;
if ($true) {
set_by_lua $true 'return tonumber(ngx.var["true"]) + 1';
break;
}
set $true "empty";
echo "[$true]";
}
--- request
GET /t
--- response_body
[empty]
--- no_error_log
[error]
=== TEST 2: set_by_lua (if true)
--- config
location /t {
set $true $arg_a;
if ($true) {
set_by_lua $true 'return tonumber(ngx.var["true"]) + 1';
break;
}
set $true "blah";
echo "[$true]";
}
--- request
GET /t?a=2
--- response_body
[3]
--- no_error_log
[error]
=== TEST 3: content_by_lua inherited by location if
--- config
location /t {
set $true 1;
if ($true) {
# nothing
}
content_by_lua 'ngx.say("hello world")';
}
--- request
GET /t
--- response_body
hello world
--- no_error_log
[error]
=== TEST 4: rewrite_by_lua inherited by location if
--- config
location /t {
set $true 1;
if ($true) {
# nothing
}
rewrite_by_lua 'ngx.say("hello world") ngx.exit(200)';
}
--- request
GET /t
--- response_body
hello world
--- no_error_log
[error]
=== TEST 5: access_by_lua inherited by location if
--- config
location /t {
set $true 1;
if ($true) {
# nothing
}
access_by_lua 'ngx.say("hello world") ngx.exit(200)';
}
--- request
GET /t
--- response_body
hello world
--- no_error_log
[error]
=== TEST 6: log_by_lua inherited by location if
--- config
location /t {
set $true 1;
if ($true) {
# nothing
}
log_by_lua 'ngx.log(ngx.WARN, "from log by lua")';
echo hello world;
}
--- request
GET /t
--- response_body
hello world
--- no_error_log
[error]
--- error_log
from log by lua
=== TEST 7: header_filter_by_lua inherited by location if
--- config
location /t {
set $true 1;
if ($true) {
# nothing
}
header_filter_by_lua 'ngx.header.Foo = "bah"';
echo hello world;
}
--- request
GET /t
--- response_body
hello world
--- response_headers
Foo: bah
--- no_error_log
[error]
=== TEST 8: body_filter_by_lua inherited by location if
--- config
location /t {
set $true 1;
if ($true) {
# nothing
}
body_filter_by_lua 'ngx.arg[1] = string.upper(ngx.arg[1])';
echo hello world;
}
--- request
GET /t
--- response_body
HELLO WORLD
--- no_error_log
[error]
=== TEST 9: if is evil for ngx_proxy
This test case requires the following patch for the nginx core:
http://mailman.nginx.org/pipermail/nginx-devel/2012-June/002374.html
--- config
location /proxy-pass-uri {
proxy_pass http://127.0.0.1:$TEST_NGINX_SERVER_PORT/;
set $true 1;
if ($true) {
# nothing
}
}
--- request
GET /proxy-pass-uri
--- response_body_like: It works!
--- no_error_log
[error]