summaryrefslogtreecommitdiffstats
path: root/debian/perl-framework/t/apache/pr17629.t
diff options
context:
space:
mode:
Diffstat (limited to 'debian/perl-framework/t/apache/pr17629.t')
-rw-r--r--debian/perl-framework/t/apache/pr17629.t51
1 files changed, 51 insertions, 0 deletions
diff --git a/debian/perl-framework/t/apache/pr17629.t b/debian/perl-framework/t/apache/pr17629.t
new file mode 100644
index 0000000..a089e98
--- /dev/null
+++ b/debian/perl-framework/t/apache/pr17629.t
@@ -0,0 +1,51 @@
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+use Apache::TestUtil;
+use Apache::TestRequest;
+
+plan tests => 4, need [need_cgi, qw(include deflate case_filter)];
+my $inflator = "/modules/deflate/echo_post";
+
+my @deflate_headers;
+push @deflate_headers, "Accept-Encoding" => "gzip";
+
+my @inflate_headers;
+push @inflate_headers, "Content-Encoding" => "gzip";
+
+# The SSI script has the DEFLATE filter applied.
+# The SSI includes a CGI script.
+# The CGI script has the CASE filter applied.
+# The CGI script returns a redirect to /foobar.html.
+# The flat file does not have the DEFLATE filter applied.
+
+# The test is that the internal redirect when applied to the
+# subrequest must retain the DEFLATE filter in the filter chain, but
+# must lose the CASE filter.
+
+my $uri = "/modules/deflate/ssi/ssi.shtml";
+
+my $content = GET_BODY($uri);
+
+my $expected = "begin-foobar-end\n";
+
+ok t_cmp($content, $expected);
+
+my $r = GET($uri, @deflate_headers);
+
+ok t_cmp($r->code, 200);
+
+my $renc = $r->header("Content-Encoding") || "";
+
+ok t_cmp($renc, "gzip", "response was gzipped");
+
+if ($renc eq "gzip") {
+ my $deflated = POST_BODY($inflator, @inflate_headers,
+ content => $r->content);
+
+ ok t_cmp($deflated, $expected);
+}
+else {
+ skip "response not gzipped";
+}