changeset 523:64eabe6aa1f2

Tests: try_files tests for files and directory matching.
author Damien Tournoud <damien@commerceguys.com>
date Wed, 21 Jan 2015 00:57:09 +0100
parents 5b5ef52d6fd2
children 084f8c8cb648
files http_try_files.t
diffstat 1 files changed, 30 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/http_try_files.t
+++ b/http_try_files.t
@@ -21,7 +21,7 @@ use Test::Nginx;
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/http proxy rewrite/)->plan(4)
+my $t = Test::Nginx->new()->has(qw/http proxy rewrite/)->plan(8)
 	->write_file_expand('nginx.conf', <<'EOF');
 
 %%TEST_GLOBALS%%
@@ -50,6 +50,22 @@ http {
             try_files /short $uri =404;
         }
 
+        location /file-file/ {
+            try_files /found.html =404;
+        }
+
+        location /file-dir/ {
+            try_files /found.html/ =404;
+        }
+
+        location /dir-dir/ {
+            try_files /directory/ =404;
+        }
+
+        location /dir-file/ {
+            try_files /directory =404;
+        }
+
         location /fallback {
             proxy_pass http://127.0.0.1:8081/fallback;
         }
@@ -71,6 +87,7 @@ http {
 
 EOF
 
+mkdir($t->testdir() . '/directory');
 $t->write_file('found.html', 'SEE THIS');
 $t->run();
 
@@ -81,4 +98,16 @@ like(http_get('/uri/notfound'), qr!X-URI
 like(http_get('/nouri/notfound'), qr!X-URI: /fallback!, 'not found nouri');
 like(http_get('/short/long'), qr!404 Not!, 'short uri in try_files');
 
+like(http_get('/file-file/'), qr!SEE THIS!, 'file matches file');
+
+TODO: {
+local $TODO = 'not yet' unless $t->has_version('1.7.10');
+
+like(http_get('/file-dir/'), qr!404 Not!, 'file does not match dir');
+
+}
+
+like(http_get('/dir-dir/'), qr!301 Moved Permanently!, 'dir matches dir');
+like(http_get('/dir-file/'), qr!404 Not!, 'dir does not match file');
+
 ###############################################################################