Mercurial > hg > nginx-tests
changeset 683:49aea425392d
Tests: more tests for server_name directive.
Added tests for regex and wildcard values, multiple values, and multiple
directives.
author | Andrey Zelenkov <zelenkov@nginx.com> |
---|---|
date | Tue, 08 Sep 2015 15:12:34 +0300 |
parents | c68b7bbdf21a |
children | 96666f621dbc |
files | http_server_name.t |
diffstat | 1 files changed, 86 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/http_server_name.t Tue Sep 08 15:11:45 2015 +0300 +++ b/http_server_name.t Tue Sep 08 15:12:34 2015 +0300 @@ -1,6 +1,8 @@ #!/usr/bin/perl # (C) Maxim Dounin +# (C) Andrey Zelenkov +# (C) Nginx, Inc. # Tests for server_name selection. @@ -11,6 +13,8 @@ use Test::More; +use Socket qw/ CRLF /; + BEGIN { use FindBin; chdir($FindBin::Bin); } use lib 'lib'; @@ -23,7 +27,7 @@ plan(skip_all => 'win32') if $^O eq 'MSWin32'; -my $t = Test::Nginx->new()->has(qw/http rewrite/)->plan(9) +my $t = Test::Nginx->new()->has(qw/http rewrite/)->plan(18) ->write_file_expand('nginx.conf', <<'EOF'); %%TEST_GLOBALS%% @@ -49,6 +53,15 @@ server { listen 127.0.0.1:8080; + server_name ""; + + location / { + add_header X-Server $server_name; + } + } + + server { + listen 127.0.0.1:8080; server_name www.example.com; location / { @@ -84,6 +97,52 @@ add_header X-Match $name; } } + + server { + listen 127.0.0.1:8080; + server_name many.example.com many2.example.com; + + location / { + add_header X-Server $server_name; + } + } + + server { + listen 127.0.0.1:8080; + server_name many3.example.com; + server_name many4.example.com; + + location / { + add_header X-Server $server_name; + } + } + + server { + listen 127.0.0.1:8080; + server_name *.wc.example.com; + + location / { + add_header X-Server $server_name; + } + } + + server { + listen 127.0.0.1:8080; + server_name wc2.example.*; + + location / { + add_header X-Server $server_name; + } + } + + server { + listen 127.0.0.1:8080; + server_name .dot.example.com; + + location / { + add_header X-Server $server_name; + } + } } EOF @@ -94,6 +153,7 @@ ############################################################################### like(http_server('xxx'), qr/X-Server: localhost/, 'default'); +unlike(http_server(), qr/X-Server/, 'empty'); like(http_server('www.example.com'), qr/\QX-Server: www.example.com/, 'www.example.com'); @@ -115,15 +175,36 @@ like(http_server('WWW01.EXAMPLE.COM'), qr/X-Match: www01/, '\p{N} in named capture uppercase'); +like(http_server('many.example.com'), qr/\QX-Server: many.example.com/, + 'name row - first'); +like(http_server('many2.example.com'), qr/\QX-Server: many.example.com/, + 'name row - second'); + +like(http_server('many3.example.com'), qr/\QX-Server: many3.example.com/, + 'name list - first'); +like(http_server('many4.example.com'), qr/\QX-Server: many3.example.com/, + 'name list - second'); + +like(http_server('www.wc.example.com'), + qr/\QX-Server: *.wc.example.com/, 'wildcard first'); +like(http_server('wc2.example.net'), + qr/\QX-Server: wc2.example.*/, 'wildcard last'); + +like(http_server('www.dot.example.com'), qr/\QX-Server: dot.example.com/, + 'wildcard dot'); +like(http_server('dot.example.com'), qr/\QX-Server: dot.example.com/, + 'wildcard dot empty'); + ############################################################################### sub http_server { my ($host) = @_; - return http(<<EOF); -GET / HTTP/1.0 -Host: $host -EOF + my $str = 'GET / HTTP/1.0' . CRLF . + (defined $host ? "Host: $host" . CRLF : '') . + CRLF; + + return http($str); } ###############################################################################