mirror of
https://github.com/openresty/headers-more-nginx-module
synced 2024-11-11 20:35:56 +01:00
339 lines
5.8 KiB
Perl
339 lines
5.8 KiB
Perl
# vi:filetype=
|
|
|
|
use lib 'lib';
|
|
use Test::Nginx::Socket; # 'no_plan';
|
|
|
|
plan tests => 60;
|
|
|
|
no_diff;
|
|
|
|
run_tests();
|
|
|
|
__DATA__
|
|
|
|
=== TEST 1: set Server
|
|
--- config
|
|
location /foo {
|
|
echo hi;
|
|
more_set_headers 'Server: Foo';
|
|
}
|
|
--- request
|
|
GET /foo
|
|
--- response_headers
|
|
Server: Foo
|
|
--- response_body
|
|
hi
|
|
|
|
|
|
|
|
=== TEST 2: clear Server
|
|
--- config
|
|
location /foo {
|
|
echo hi;
|
|
more_clear_headers 'Server: ';
|
|
}
|
|
--- request
|
|
GET /foo
|
|
--- response_headers
|
|
! Server
|
|
--- response_body
|
|
hi
|
|
|
|
|
|
|
|
=== TEST 3: set Content-Type
|
|
--- config
|
|
location /foo {
|
|
default_type 'text/plan';
|
|
more_set_headers 'Content-Type: text/css';
|
|
echo hi;
|
|
}
|
|
--- request
|
|
GET /foo
|
|
--- response_headers
|
|
Content-Type: text/css
|
|
--- response_body
|
|
hi
|
|
|
|
|
|
|
|
=== TEST 4: set Content-Type
|
|
--- config
|
|
location /foo {
|
|
default_type 'text/plan';
|
|
more_set_headers 'Content-Type: text/css';
|
|
return 404;
|
|
}
|
|
--- request
|
|
GET /foo
|
|
--- response_headers
|
|
Content-Type: text/css
|
|
--- response_body_like: 404 Not Found
|
|
--- error_code: 404
|
|
|
|
|
|
|
|
=== TEST 5: clear Content-Type
|
|
--- config
|
|
location /foo {
|
|
default_type 'text/plain';
|
|
more_clear_headers 'Content-Type: ';
|
|
return 404;
|
|
}
|
|
--- request
|
|
GET /foo
|
|
--- response_headers
|
|
! Content-Type
|
|
--- response_body_like: 404 Not Found
|
|
--- error_code: 404
|
|
|
|
|
|
|
|
=== TEST 6: clear Content-Type (colon not required)
|
|
--- config
|
|
location /foo {
|
|
default_type 'text/plain';
|
|
more_set_headers 'Content-Type: Hello';
|
|
more_clear_headers 'Content-Type';
|
|
return 404;
|
|
}
|
|
--- request
|
|
GET /foo
|
|
--- response_headers
|
|
! Content-Type
|
|
--- response_body_like: 404 Not Found
|
|
--- error_code: 404
|
|
|
|
|
|
|
|
=== TEST 7: clear Content-Type (value ignored)
|
|
--- config
|
|
location /foo {
|
|
default_type 'text/plain';
|
|
more_set_headers 'Content-Type: Hello';
|
|
more_clear_headers 'Content-Type: blah';
|
|
return 404;
|
|
}
|
|
--- request
|
|
GET /foo
|
|
--- response_headers
|
|
! Content-Type
|
|
--- response_body_like: 404 Not Found
|
|
--- error_code: 404
|
|
|
|
|
|
|
|
=== TEST 8: clear Content-Type (case insensitive)
|
|
--- config
|
|
location /foo {
|
|
default_type 'text/plain';
|
|
more_set_headers 'Content-Type: Hello';
|
|
more_clear_headers 'content-type: blah';
|
|
return 404;
|
|
}
|
|
--- request
|
|
GET /foo
|
|
--- response_headers
|
|
! Content-Type
|
|
--- response_body_like: 404 Not Found
|
|
--- error_code: 404
|
|
|
|
|
|
|
|
=== TEST 9: clear Content-Type using set empty
|
|
--- config
|
|
location /foo {
|
|
default_type 'text/plain';
|
|
more_set_headers 'Content-Type: Hello';
|
|
more_set_headers 'content-type:';
|
|
return 404;
|
|
}
|
|
--- request
|
|
GET /foo
|
|
--- response_headers
|
|
! Content-Type
|
|
--- response_body_like: 404 Not Found
|
|
--- error_code: 404
|
|
|
|
|
|
|
|
=== TEST 10: clear Content-Type using setting key only
|
|
--- config
|
|
location /foo {
|
|
default_type 'text/plain';
|
|
more_set_headers 'Content-Type: Hello';
|
|
more_set_headers 'content-type';
|
|
return 404;
|
|
}
|
|
--- request
|
|
GET /foo
|
|
--- response_headers
|
|
! Content-Type
|
|
--- response_body_like: 404 Not Found
|
|
--- error_code: 404
|
|
|
|
|
|
|
|
=== TEST 11: set content-length
|
|
--- config
|
|
location /len {
|
|
more_set_headers 'Content-Length: 2';
|
|
echo hello;
|
|
}
|
|
--- request
|
|
GET /len
|
|
--- response_headers
|
|
Content-Length: 2
|
|
--- response_body chop
|
|
he
|
|
|
|
|
|
|
|
=== TEST 12: set content-length multiple times
|
|
--- config
|
|
location /len {
|
|
more_set_headers 'Content-Length: 2';
|
|
more_set_headers 'Content-Length: 4';
|
|
echo hello;
|
|
}
|
|
--- request
|
|
GET /len
|
|
--- response_headers
|
|
Content-Length: 4
|
|
--- response_body chop
|
|
hell
|
|
|
|
|
|
|
|
=== TEST 13: clear content-length
|
|
--- config
|
|
location /len {
|
|
more_set_headers 'Content-Length: 4';
|
|
more_set_headers 'Content-Length:';
|
|
echo hello;
|
|
}
|
|
--- request
|
|
GET /len
|
|
--- response_headers
|
|
! Content-Length
|
|
--- response_body
|
|
hello
|
|
|
|
|
|
|
|
=== TEST 14: clear content-length (another way)
|
|
--- config
|
|
location /len {
|
|
more_set_headers 'Content-Length: 4';
|
|
more_clear_headers 'Content-Length';
|
|
echo hello;
|
|
}
|
|
--- request
|
|
GET /len
|
|
--- response_headers
|
|
! Content-Length
|
|
--- response_body
|
|
hello
|
|
|
|
|
|
|
|
=== TEST 15: clear content-type
|
|
--- config
|
|
location /len {
|
|
default_type 'text/plain';
|
|
more_set_headers 'Content-Type:';
|
|
echo hello;
|
|
}
|
|
--- request
|
|
GET /len
|
|
--- response_headers
|
|
! Content-Type
|
|
--- response_body
|
|
hello
|
|
|
|
|
|
|
|
=== TEST 16: clear content-type (the other way)
|
|
--- config
|
|
location /len {
|
|
default_type 'text/plain';
|
|
more_clear_headers 'Content-Type:';
|
|
echo hello;
|
|
}
|
|
--- request
|
|
GET /len
|
|
--- response_headers
|
|
! Content-Type
|
|
--- response_body
|
|
hello
|
|
|
|
|
|
|
|
=== TEST 17: set Charset
|
|
--- config
|
|
location /len {
|
|
default_type 'text/plain';
|
|
more_set_headers 'Charset: gbk';
|
|
echo hello;
|
|
}
|
|
--- request
|
|
GET /len
|
|
--- response_headers
|
|
Charset: gbk
|
|
--- response_body
|
|
hello
|
|
|
|
|
|
|
|
=== TEST 18: clear Charset
|
|
--- config
|
|
location /len {
|
|
default_type 'text/plain';
|
|
more_set_headers 'Charset: gbk';
|
|
more_clear_headers 'Charset';
|
|
echo hello;
|
|
}
|
|
--- request
|
|
GET /len
|
|
--- response_headers
|
|
! Charset
|
|
--- response_body
|
|
hello
|
|
|
|
|
|
|
|
=== TEST 19: clear Charset (the other way: using set)
|
|
--- config
|
|
location /len {
|
|
default_type 'text/plain';
|
|
more_set_headers 'Charset: gbk';
|
|
more_set_headers 'Charset: ';
|
|
echo hello;
|
|
}
|
|
--- request
|
|
GET /len
|
|
--- response_headers
|
|
! Charset
|
|
--- response_body
|
|
hello
|
|
|
|
|
|
|
|
=== TEST 20: set Vary
|
|
--- config
|
|
location /foo {
|
|
more_set_headers 'Vary: gbk';
|
|
echo hello;
|
|
}
|
|
location /len {
|
|
default_type 'text/plain';
|
|
more_set_headers 'Vary: hello';
|
|
proxy_pass http://127.0.0.1:$server_port/foo;
|
|
}
|
|
--- request
|
|
GET /len
|
|
--- response_headers
|
|
Vary: hello
|
|
--- response_body
|
|
hello
|