summaryrefslogtreecommitdiffstats
path: root/debian/perl-framework/t/apache/cfg_getline.t
diff options
context:
space:
mode:
Diffstat (limited to 'debian/perl-framework/t/apache/cfg_getline.t')
-rw-r--r--debian/perl-framework/t/apache/cfg_getline.t46
1 files changed, 46 insertions, 0 deletions
diff --git a/debian/perl-framework/t/apache/cfg_getline.t b/debian/perl-framework/t/apache/cfg_getline.t
new file mode 100644
index 0000000..08f0231
--- /dev/null
+++ b/debian/perl-framework/t/apache/cfg_getline.t
@@ -0,0 +1,46 @@
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+use Apache::TestRequest;
+use Apache::TestUtil qw(t_write_file);
+
+use File::Spec;
+
+# test ap_cfg_getline / ap_varbuf_cfg_getline
+
+Apache::TestRequest::user_agent(keep_alive => 1);
+
+my $dir_foo = Apache::Test::vars('serverroot') . '/htdocs/cfg_getline';
+
+# XXX: htaccess is limited to 8190 chars, would need different test
+# XXX: method to test longer lines
+my @test_cases = (100, 196 .. 202, 396 .. 402 , 596 .. 602 , 1016 .. 1030,
+ 8170 .. 8190);
+plan tests => 2 * scalar(@test_cases), need need_lwp,
+ need_module('mod_include'),
+ need_module('mod_setenvif');
+
+foreach my $len (@test_cases) {
+ my $prefix = 'SetEnvIf User-Agent ^ testvar=';
+ my $expect = 'a' x ($len - length($prefix));
+ my $file = File::Spec->catfile(Apache::Test::vars('serverroot'), 'htdocs',
+ 'apache', 'cfg_getline', '.htaccess');
+ t_write_file($file, "$prefix$expect\n");
+
+ my $response = GET('/apache/cfg_getline/index.shtml');
+ my $rc = $response->code;
+ print "Got rc $rc for length $len\n";
+ ok($rc == 200);
+
+ my $got = $response->content;
+ my $match;
+ if ($got =~ /^'$expect'/) {
+ $match = 1;
+ }
+ else {
+ print "Got $got\n",
+ "expected '$expect'\n";
+ }
+ ok($match);
+}