# vim:set ft= ts=4 sw=4 et fdm=marker: 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]