blob: aceb8778fc4c28dd58203291bc6265e6a522643a [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);
#no_diff();
no_long_string();
run_tests();
__DATA__
=== TEST 1: get method name in main request
--- config
location /t {
content_by_lua '
ngx.say("method: [", ngx.req.get_method(), "]")
';
}
--- request
GET /t
--- response_body
method: [GET]
--- no_error_log
[error]
=== TEST 2: get method name in subrequest
--- config
location /t {
echo_subrequest POST /sub;
}
location /sub {
content_by_lua '
ngx.say("method: [", ngx.req.get_method(), "]")
';
}
--- request
GET /t
--- response_body
method: [POST]
--- no_error_log
[error]
=== TEST 3: set GET to POST
--- config
location /t {
rewrite_by_lua '
ngx.req.set_method(ngx.HTTP_POST)
';
proxy_pass http://127.0.0.1:$server_port/echo;
}
location /echo {
echo $request_method;
}
--- request
GET /t
--- response_body
POST
--- no_error_log
[error]
=== TEST 4: set POST to GET
--- config
location /t {
rewrite_by_lua '
ngx.req.set_method(ngx.HTTP_GET)
';
proxy_pass http://127.0.0.1:$server_port/echo;
}
location /echo {
echo $request_method;
}
--- request
POST /t
hello world
--- response_body
GET
--- no_error_log
[error]
=== TEST 5: set POST to DELETE
--- config
location /t {
rewrite_by_lua '
ngx.req.set_method(ngx.HTTP_DELETE)
';
proxy_pass http://127.0.0.1:$server_port/echo;
}
location /echo {
echo $request_method;
}
--- request
POST /t
hello world
--- response_body
DELETE
--- no_error_log
[error]
=== TEST 6: set POST to PUT
--- config
location /t {
rewrite_by_lua '
ngx.req.set_method(ngx.HTTP_PUT)
';
proxy_pass http://127.0.0.1:$server_port/echo;
}
location /echo {
echo $request_method;
}
--- request
POST /t
hello world
--- response_body
PUT
--- no_error_log
[error]
=== TEST 7: set POST to PUT (using $requeset_method)
--- config
location /t {
rewrite_by_lua '
ngx.req.set_method(ngx.HTTP_PUT)
';
echo $request_method;
}
--- request
POST /t
hello world
--- response_body
PUT
--- no_error_log
[error]
=== TEST 8: set GET to HEAD
--- config
location /t {
rewrite_by_lua '
ngx.req.set_method(ngx.HTTP_HEAD)
';
proxy_pass http://127.0.0.1:$server_port/echo;
#proxy_pass http://127.0.0.1:8888/;
}
location /echo {
echo $request_method;
}
--- request
GET /t
--- response_body
--- no_error_log
[error]
=== TEST 9: set method name in subrequest
--- config
location /t {
echo_subrequest POST /sub;
echo "main: $echo_request_method";
}
location /sub {
content_by_lua '
ngx.req.set_method(ngx.HTTP_PUT)
ngx.say("sub: ", ngx.var.echo_request_method)
';
}
--- request
GET /t
--- response_body
sub: PUT
main: GET
--- no_error_log
[error]
=== TEST 10: set HEAD to GET
--- config
location /t {
rewrite_by_lua '
ngx.req.set_method(ngx.HTTP_GET)
';
echo "method: $echo_request_method";
}
--- request
HEAD /t
--- response_body
method: GET
--- no_error_log
[error]
=== TEST 11: set GET to WebDAV methods
--- config
location /t {
content_by_lua '
local methods = {
ngx.HTTP_MKCOL,
ngx.HTTP_COPY,
ngx.HTTP_MOVE,
ngx.HTTP_PROPFIND,
ngx.HTTP_PROPPATCH,
ngx.HTTP_LOCK,
ngx.HTTP_UNLOCK,
ngx.HTTP_PATCH,
ngx.HTTP_TRACE,
}
for i, method in ipairs(methods) do
ngx.req.set_method(method)
ngx.say("method: ", ngx.var.echo_request_method)
end
';
}
--- request
HEAD /t
--- response_body
method: MKCOL
method: COPY
method: MOVE
method: PROPFIND
method: PROPPATCH
method: LOCK
method: UNLOCK
method: PATCH
method: TRACE
--- no_error_log
[error]