| 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"; |
| } |