# HG changeset patch # User Andrey Zelenkov # Date 1441714354 -10800 # Node ID 49aea425392dba4c82a5ae8567bccaec68a34909 # Parent c68b7bbdf21a60d41920edcc3527222fe64b34e7 Tests: more tests for server_name directive. Added tests for regex and wildcard values, multiple values, and multiple directives. diff --git a/http_server_name.t b/http_server_name.t --- a/http_server_name.t +++ b/http_server_name.t @@ -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 strict; use Test::More; +use Socket qw/ CRLF /; + BEGIN { use FindBin; chdir($FindBin::Bin); } use lib 'lib'; @@ -23,7 +27,7 @@ select STDOUT; $| = 1; 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 @@ http { 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 @@ http { 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 @@ EOF ############################################################################### 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'), q 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(<