changeset 215:7f5095965c88

Tests: added rewrite tests for ticket #162.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 03 May 2012 14:48:30 +0400
parents 35d050d7d5f1
children f2f37a52e42e
files rewrite.t
diffstat 1 files changed, 27 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/rewrite.t
+++ b/rewrite.t
@@ -21,7 +21,7 @@ use Test::Nginx;
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/http rewrite/)->plan(19)
+my $t = Test::Nginx->new()->has(qw/http rewrite/)->plan(21)
 	->write_file_expand('nginx.conf', <<'EOF');
 
 %%TEST_GLOBALS%%
@@ -116,6 +116,16 @@ http {
 
         location /directory {
         }
+
+        location /capture {
+            rewrite ^(.*) $1?c=d;
+            return 200 "uri:$uri args:$args";
+        }
+
+        location /capturedup {
+            rewrite ^(.*) $1?c=$1;
+            return 200 "uri:$uri args:$args";
+        }
     }
 }
 
@@ -202,4 +212,20 @@ like(http_get('/error405directory'),
 	qr!HTTP/1.1 301.*Location: http://!ms,
 	'error 405 directory redirect');
 
+# escaping of uri if there are args added in rewrite, and length
+# is actually calculated (ticket #162)
+
+like(http_get('/capture/%25?a=b'),
+	qr!^uri:/capture/% args:c=d&a=b$!ms,
+	'escape with added args');
+
+TODO: {
+local $TODO = 'patch pending';
+
+like(http_get('/capturedup/%25?a=b'),
+	qr!^uri:/capturedup/% args:c=/capturedup/%25&a=b$!ms,
+	'escape with added args');
+
+}
+
 ###############################################################################