# HG changeset patch # User Maxim Dounin # Date 1266634376 -10800 # Node ID adbf104668b6d3f203eaa3f3ed562fdfb48ec092 # Parent 25047dc6ae9bf5caa9f8cd03e255af67172de9fd 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 diff --git a/ssi.t b/ssi.t --- 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 'XX'); $t->write_file('test3.html', 'XX'); +$t->write_file('test-args-rewrite.html', + 'XX'); $t->write_file('test-empty1.html', 'XX'); $t->write_file('test-empty2.html', 'XX'); @@ -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,