Mercurial > hg > nginx-tests
view http_server_name.t @ 295:6fe0459b6668
Tests: eliminate startup races in proxy and fastcgi tests.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Sat, 08 Jun 2013 07:02:11 +0400 |
parents | 6a0d934950bc |
children | c68b7bbdf21a |
line wrap: on
line source
#!/usr/bin/perl # (C) Maxim Dounin # Tests for server_name selection. ############################################################################### use warnings; use strict; use Test::More; BEGIN { use FindBin; chdir($FindBin::Bin); } use lib 'lib'; use Test::Nginx; ############################################################################### select STDERR; $| = 1; select STDOUT; $| = 1; plan(skip_all => 'win32') if $^O eq 'MSWin32'; my $t = Test::Nginx->new()->has(qw/http rewrite/)->plan(9) ->write_file_expand('nginx.conf', <<'EOF'); %%TEST_GLOBALS%% daemon off; events { } http { %%TEST_GLOBALS_HTTP%% server_names_hash_bucket_size 64; server { listen 127.0.0.1:8080; server_name localhost; location / { add_header X-Server $server_name; return 204; } } server { listen 127.0.0.1:8080; server_name www.example.com; location / { add_header X-Server $server_name; return 204; } } server { listen 127.0.0.1:8080; server_name ~^EXAMPLE\.COM$; location / { add_header X-Server $server_name; return 204; } } server { listen 127.0.0.1:8080; server_name ~^(?P<name>.+)\Q.example.com\E$; location / { add_header X-Server $server_name; add_header X-Match $name; return 204; } } server { listen 127.0.0.1:8080; server_name "~^(?P<name>www\p{N}+)\.example\.com$"; location / { add_header X-Server $server_name; add_header X-Match $name; return 204; } } } EOF $t->run(); ############################################################################### sub http_server($) { my ($host) = @_; return http(<<EOF); GET / HTTP/1.0 Host: $host EOF } ############################################################################### like(http_server('xxx'), qr/X-Server: localhost/, 'default'); like(http_server('www.example.com'), qr/\QX-Server: www.example.com/, 'www.example.com'); like(http_server('WWW.EXAMPLE.COM'), qr/\QX-Server: www.example.com/, 'www.example.com uppercase'); like(http_server('example.com'), qr/\QX-Server: ~^EXAMPLE\.COM$/, 'example.com regex'); like(http_server('EXAMPLE.COM'), qr/\QX-Server: ~^EXAMPLE\.COM$/, 'example.com regex uppercase'); like(http_server('blah.example.com'), qr/X-Match: blah/, '(P<name>.*).example.com named capture'); like(http_server('BLAH.EXAMPLE.COM'), qr/X-Match: blah/, '(P<name>.*).example.com named capture uppercase'); like(http_server('www01.example.com'), qr/X-Match: www01/, '\p{N} in named capture'); like(http_server('WWW01.EXAMPLE.COM'), qr/X-Match: www01/, '\p{N} in named capture uppercase'); ###############################################################################