# vim:set ft= ts=4 sw=4 et fdm=marker: use Test::Nginx::Socket::Lua; #worker_connections(1014); #master_process_enabled(1); log_level('debug'); # to ensure any log-level can be outputed repeat_each(2); plan tests => repeat_each() * (blocks() * 2 + 2); #no_diff(); #no_long_string(); run_tests(); __DATA__ === TEST 1: test reading request body --- config location /echo_body { lua_need_request_body on; access_by_lua ' ngx.print(ngx.var.request_body or "nil") '; content_by_lua 'ngx.exit(ngx.OK)'; } --- request eval "POST /echo_body hello\x00\x01\x02 world\x03\x04\xff" --- response_body eval "hello\x00\x01\x02 world\x03\x04\xff" === TEST 2: test not reading request body --- config location /echo_body { lua_need_request_body off; access_by_lua ' ngx.print(ngx.var.request_body or "nil") '; content_by_lua 'ngx.exit(ngx.OK)'; } --- request eval "POST /echo_body hello\x00\x01\x02 world\x03\x04\xff" --- response_body eval "nil" === TEST 3: test default setting (not reading request body) --- config location /echo_body { access_by_lua ' ngx.print(ngx.var.request_body or "nil") '; content_by_lua 'ngx.exit(ngx.OK)'; } --- request eval "POST /echo_body hello\x00\x01\x02 world\x03\x04\xff" --- response_body eval "nil" === TEST 4: test main conf --- http_config lua_need_request_body on; --- config location /echo_body { access_by_lua ' ngx.print(ngx.var.request_body or "nil") '; content_by_lua 'ngx.exit(ngx.OK)'; } --- request eval "POST /echo_body hello\x00\x01\x02 world\x03\x04\xff" --- response_body eval "hello\x00\x01\x02 world\x03\x04\xff" === TEST 5: test server conf --- config lua_need_request_body on; location /echo_body { access_by_lua ' ngx.print(ngx.var.request_body or "nil") '; content_by_lua 'ngx.exit(ngx.OK)'; } --- request eval "POST /echo_body hello\x00\x01\x02 world\x03\x04\xff" --- response_body eval "hello\x00\x01\x02 world\x03\x04\xff" === TEST 6: test override main conf --- http_config lua_need_request_body on; --- config location /echo_body { lua_need_request_body off; access_by_lua ' ngx.print(ngx.var.request_body or "nil") '; content_by_lua 'ngx.exit(ngx.OK)'; } --- request eval "POST /echo_body hello\x00\x01\x02 world\x03\x04\xff" --- response_body eval "nil" === TEST 7: test override server conf --- config lua_need_request_body on; location /echo_body { lua_need_request_body off; access_by_lua ' ngx.print(ngx.var.request_body or "nil") '; content_by_lua 'ngx.exit(ngx.OK)'; } --- request eval "POST /echo_body hello\x00\x01\x02 world\x03\x04\xff" --- response_body eval "nil" === TEST 8: Expect: 100-Continue --- config location /echo_body { lua_need_request_body on; access_by_lua ' ngx.print(ngx.var.request_body or "nil") ngx.exit(200) '; } --- request POST /echo_body hello world --- more_headers Expect: 100-Continue --- ignore_response --- no_error_log [error] [alert] http finalize request: 500, "/echo_body?" a:1, c:2 http finalize request: 500, "/echo_body?" a:1, c:0 --- log_level: debug