# HG changeset patch # User Sergey Kandaurov # Date 1369994835 -14400 # Node ID 03d5be12bc3b46d09f8af4c9e7f665a787885d69 # Parent f781b087b7aa1e9dc90d780bb1db296a1b12ea99 Tests: basic tests for access module. diff --git a/access.t b/access.t new file mode 100644 --- /dev/null +++ b/access.t @@ -0,0 +1,111 @@ +#!/usr/bin/perl + +# (C) Sergey Kandaurov + +# Tests for nginx access module. + +# At the moment only the new "unix:" syntax is tested (cf "all"). + +############################################################################### + +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; + +my $t = Test::Nginx->new()->has(qw/http proxy access ipv6/); + +plan(skip_all => 'new syntax "unix:"') unless $t->has_version('1.5.1'); +plan(skip_all => 'win32') if $^O eq 'MSWin32'; + +$t->plan(12)->write_file_expand('nginx.conf', <<'EOF'); + +%%TEST_GLOBALS%% + +daemon off; + +events { +} + +http { + %%TEST_GLOBALS_HTTP%% + + server { + listen 127.0.0.1:8080; + server_name localhost; + + location /inet/ { + proxy_pass http://127.0.0.1:8081/; + } + + location /inet6/ { + proxy_pass http://[::1]:8081/; + } + + location /unix/ { + proxy_pass http://unix:%%TESTDIR%%/unix.sock:/; + } + + } + + server { + listen 127.0.0.1:8081; + listen [::1]:8081; + listen unix:%%TESTDIR%%/unix.sock; + + location /allow_all { + allow all; + } + + location /allow_unix { + allow unix:; + } + + location /deny_all { + deny all; + } + + location /deny_unix { + deny unix:; + } + } +} + +EOF + +$t->run(); + +############################################################################### + +# tests with inet socket + +like(http_get('/inet/allow_all'), qr/404 Not Found/, 'inet allow all'); +like(http_get('/inet/allow_unix'), qr/404 Not Found/, 'inet allow unix'); +like(http_get('/inet/deny_all'), qr/403 Forbidden/, 'inet deny all'); +like(http_get('/inet/deny_unix'), qr/404 Not Found/, 'inet deny unix'); + +# tests with inet6 socket + +like(http_get('/inet6/allow_all'), qr/404 Not Found/, 'inet6 allow all'); +like(http_get('/inet6/allow_unix'), qr/404 Not Found/, 'inet6 allow unix'); +like(http_get('/inet6/deny_all'), qr/403 Forbidden/, 'inet6 deny all'); +like(http_get('/inet6/deny_unix'), qr/404 Not Found/, 'inet6 deny unix'); + +# tests with unix socket + +like(http_get('/unix/allow_all'), qr/404 Not Found/, 'unix allow all'); +like(http_get('/unix/allow_unix'), qr/404 Not Found/, 'unix allow unix'); +like(http_get('/unix/deny_all'), qr/403 Forbidden/, 'unix deny all'); +like(http_get('/unix/deny_unix'), qr/403 Forbidden/, 'unix deny unix'); + +###############################################################################