changeset 129:adbf104668b6

Tests: add test for $args in subrequest only. It's currently not handled properly once cached as not found in main request. Reported by: Laurence Rowe
author Maxim Dounin <mdounin@mdounin.ru>
date Sat, 20 Feb 2010 05:52:56 +0300
parents 25047dc6ae9b
children df9a573fde22
files ssi.t
diffstat 1 files changed, 21 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ssi.t
+++ b/ssi.t
@@ -21,7 +21,7 @@ use Test::Nginx;
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/http ssi cache proxy/)->plan(16);
+my $t = Test::Nginx->new()->has(qw/http ssi cache proxy rewrite/)->plan(18);
 
 $t->write_file_expand('nginx.conf', <<'EOF');
 
@@ -42,6 +42,11 @@ http {
     server {
         listen       127.0.0.1:8080;
         server_name  localhost;
+
+        if ($args = "found") {
+            return 204;
+        }
+
         location / {
             ssi on;
         }
@@ -68,6 +73,8 @@ EOF
 	'X<!--#include virtual="/test1.html?test=test" -->X');
 $t->write_file('test3.html',
 	'X<!--#set var="blah" value="test" --><!--#echo var="blah" -->X');
+$t->write_file('test-args-rewrite.html',
+	'X<!--#include virtual="/check?found" -->X');
 $t->write_file('test-empty1.html', 'X<!--#include virtual="/empty.html" -->X');
 $t->write_file('test-empty2.html',
 	'X<!--#include virtual="/local/empty.html" -->X');
@@ -92,6 +99,19 @@ like(http_get('/test2.html'), qr/^XXtest
 
 like(http_get('/test3.html'), qr/^XtestX$/m, 'set');
 
+# args should be in subrequest even if original request has no args and that
+# was queried somehow (e.g. by server rewrites)
+
+TODO: {
+local $TODO = 'patch under review';
+
+like(http_get('/test-args-rewrite.html'), qr/^XX$/m, 'args only subrequest');
+
+}
+
+like(http_get('/test-args-rewrite.html?wasargs'), qr/^XX$/m,
+	'args was in main request');
+
 # Last-Modified and Accept-Ranges headers should be cleared
 
 unlike(http_get('/test1.html'), qr/Last-Modified|Accept-Ranges/im,