146 lines
3.3 KiB
Perl
146 lines
3.3 KiB
Perl
![]() |
# vim:set ft= ts=4 sw=4 et:
|
||
|
|
||
|
use Test::Nginx::Socket;
|
||
|
use Cwd qw(cwd);
|
||
|
|
||
|
plan tests => repeat_each() * (blocks() * 4) + 6;
|
||
|
|
||
|
my $pwd = cwd();
|
||
|
|
||
|
our $HttpConfig = qq{
|
||
|
lua_package_path "$pwd/lib/?.lua;;";
|
||
|
error_log logs/error.log debug;
|
||
|
};
|
||
|
|
||
|
$ENV{TEST_NGINX_RESOLVER} = '8.8.8.8';
|
||
|
|
||
|
no_long_string();
|
||
|
#no_diff();
|
||
|
|
||
|
run_tests();
|
||
|
|
||
|
__DATA__
|
||
|
=== TEST 1: Simple URI interface
|
||
|
--- http_config eval: $::HttpConfig
|
||
|
--- config
|
||
|
location = /a {
|
||
|
content_by_lua '
|
||
|
local http = require "resty.http"
|
||
|
local httpc = http.new()
|
||
|
local res, err = httpc:request_uri("http://127.0.0.1:"..ngx.var.server_port.."/b?a=1&b=2")
|
||
|
|
||
|
if not res then
|
||
|
ngx.log(ngx.ERR, err)
|
||
|
end
|
||
|
ngx.status = res.status
|
||
|
|
||
|
ngx.header["X-Header-A"] = res.headers["X-Header-A"]
|
||
|
ngx.header["X-Header-B"] = res.headers["X-Header-B"]
|
||
|
|
||
|
ngx.print(res.body)
|
||
|
';
|
||
|
}
|
||
|
location = /b {
|
||
|
content_by_lua '
|
||
|
for k,v in pairs(ngx.req.get_uri_args()) do
|
||
|
ngx.header["X-Header-" .. string.upper(k)] = v
|
||
|
end
|
||
|
ngx.say("OK")
|
||
|
';
|
||
|
}
|
||
|
--- request
|
||
|
GET /a
|
||
|
--- response_headers
|
||
|
X-Header-A: 1
|
||
|
X-Header-B: 2
|
||
|
--- response_body
|
||
|
OK
|
||
|
--- no_error_log
|
||
|
[error]
|
||
|
[warn]
|
||
|
|
||
|
|
||
|
=== TEST 2: Simple URI interface HTTP 1.0
|
||
|
--- http_config eval: $::HttpConfig
|
||
|
--- config
|
||
|
location = /a {
|
||
|
content_by_lua '
|
||
|
local http = require "resty.http"
|
||
|
local httpc = http.new()
|
||
|
local res, err = httpc:request_uri(
|
||
|
"http://127.0.0.1:"..ngx.var.server_port.."/b?a=1&b=2", {
|
||
|
}
|
||
|
)
|
||
|
|
||
|
ngx.status = res.status
|
||
|
|
||
|
ngx.header["X-Header-A"] = res.headers["X-Header-A"]
|
||
|
ngx.header["X-Header-B"] = res.headers["X-Header-B"]
|
||
|
|
||
|
ngx.print(res.body)
|
||
|
';
|
||
|
}
|
||
|
location = /b {
|
||
|
content_by_lua '
|
||
|
for k,v in pairs(ngx.req.get_uri_args()) do
|
||
|
ngx.header["X-Header-" .. string.upper(k)] = v
|
||
|
end
|
||
|
ngx.say("OK")
|
||
|
';
|
||
|
}
|
||
|
--- request
|
||
|
GET /a
|
||
|
--- response_headers
|
||
|
X-Header-A: 1
|
||
|
X-Header-B: 2
|
||
|
--- response_body
|
||
|
OK
|
||
|
--- no_error_log
|
||
|
[error]
|
||
|
[warn]
|
||
|
|
||
|
|
||
|
=== TEST 3 Simple URI interface, params override
|
||
|
--- http_config eval: $::HttpConfig
|
||
|
--- config
|
||
|
location = /a {
|
||
|
content_by_lua '
|
||
|
local http = require "resty.http"
|
||
|
local httpc = http.new()
|
||
|
local res, err = httpc:request_uri(
|
||
|
"http://127.0.0.1:"..ngx.var.server_port.."/b?a=1&b=2", {
|
||
|
path = "/c",
|
||
|
query = {
|
||
|
a = 2,
|
||
|
b = 3,
|
||
|
},
|
||
|
}
|
||
|
)
|
||
|
|
||
|
ngx.status = res.status
|
||
|
|
||
|
ngx.header["X-Header-A"] = res.headers["X-Header-A"]
|
||
|
ngx.header["X-Header-B"] = res.headers["X-Header-B"]
|
||
|
|
||
|
ngx.print(res.body)
|
||
|
';
|
||
|
}
|
||
|
location = /c {
|
||
|
content_by_lua '
|
||
|
for k,v in pairs(ngx.req.get_uri_args()) do
|
||
|
ngx.header["X-Header-" .. string.upper(k)] = v
|
||
|
end
|
||
|
ngx.say("OK")
|
||
|
';
|
||
|
}
|
||
|
--- request
|
||
|
GET /a
|
||
|
--- response_headers
|
||
|
X-Header-A: 2
|
||
|
X-Header-B: 3
|
||
|
--- response_body
|
||
|
OK
|
||
|
--- no_error_log
|
||
|
[error]
|
||
|
[warn]
|