summaryrefslogtreecommitdiffstats
path: root/debian/perl-framework/Apache-Test/t
diff options
context:
space:
mode:
Diffstat (limited to 'debian/perl-framework/Apache-Test/t')
-rw-r--r--debian/perl-framework/Apache-Test/t/TEST.PL42
-rw-r--r--debian/perl-framework/Apache-Test/t/alltest/01bang.t5
-rw-r--r--debian/perl-framework/Apache-Test/t/alltest/all.t8
-rw-r--r--debian/perl-framework/Apache-Test/t/alltest2/01bang.t5
-rw-r--r--debian/perl-framework/Apache-Test/t/alltest2/all.t8
-rw-r--r--debian/perl-framework/Apache-Test/t/bad_coding.t22
-rw-r--r--debian/perl-framework/Apache-Test/t/cgi-bin/cookies.pl.PL16
-rw-r--r--debian/perl-framework/Apache-Test/t/cgi-bin/next_available_port.pl.PL4
-rw-r--r--debian/perl-framework/Apache-Test/t/conf/extra.conf.in46
-rw-r--r--debian/perl-framework/Apache-Test/t/conf/modperl_extra.pl.in13
-rw-r--r--debian/perl-framework/Apache-Test/t/cookies.t18
-rw-r--r--debian/perl-framework/Apache-Test/t/import.t145
-rw-r--r--debian/perl-framework/Apache-Test/t/log_watch.t76
-rw-r--r--debian/perl-framework/Apache-Test/t/log_watch_for_broken_lines.t40
-rw-r--r--debian/perl-framework/Apache-Test/t/more/01testpm.t8
-rw-r--r--debian/perl-framework/Apache-Test/t/more/02testmore.t8
-rw-r--r--debian/perl-framework/Apache-Test/t/more/03testpm.t8
-rw-r--r--debian/perl-framework/Apache-Test/t/more/04testmore.t8
-rw-r--r--debian/perl-framework/Apache-Test/t/more/all.t28
-rw-r--r--debian/perl-framework/Apache-Test/t/next_available_port.t16
-rw-r--r--debian/perl-framework/Apache-Test/t/ping.t17
-rw-r--r--debian/perl-framework/Apache-Test/t/redirect.t23
-rw-r--r--debian/perl-framework/Apache-Test/t/request.t28
-rw-r--r--debian/perl-framework/Apache-Test/t/response/TestMore/testmorepm.pm21
-rw-r--r--debian/perl-framework/Apache-Test/t/response/TestMore/testpm.pm18
-rw-r--r--debian/perl-framework/Apache-Test/t/sok.t168
26 files changed, 799 insertions, 0 deletions
diff --git a/debian/perl-framework/Apache-Test/t/TEST.PL b/debian/perl-framework/Apache-Test/t/TEST.PL
new file mode 100644
index 0000000..bbdc93e
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/TEST.PL
@@ -0,0 +1,42 @@
+use strict;
+
+use lib qw(lib ../lib);
+
+use warnings FATAL => 'all';
+
+use Apache::TestRun ();
+
+package MyTest;
+
+use vars qw(@ISA);
+@ISA = qw(Apache::TestRun);
+
+#subclass new_test_config to add some config vars which will
+#be replaced in generated config, see t/conf/extra.conf.in
+
+#'make test' runs -clean by default, so to actually see the replacements:
+#perl t/TEST apxs ...
+#cat t/conf/extra.conf
+#perl t/TEST -clean
+
+sub new_test_config {
+ my $self = shift;
+
+ $self->{conf_opts}->{authname} = 'gold club';
+ $self->{conf_opts}->{allowed_users} = 'dougm sterling';
+
+ return $self->SUPER::new_test_config;
+}
+
+sub bug_report {
+ my $self = shift;
+
+ print <<EOI;
++-----------------------------------------------------+
+| To report problems please refer to the SUPPORT file |
++-----------------------------------------------------+
+EOI
+}
+
+MyTest->new->run(@ARGV);
+
diff --git a/debian/perl-framework/Apache-Test/t/alltest/01bang.t b/debian/perl-framework/Apache-Test/t/alltest/01bang.t
new file mode 100644
index 0000000..3782ade
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/alltest/01bang.t
@@ -0,0 +1,5 @@
+use Apache::Test;
+
+plan tests => 1;
+
+ok (0, 'this test should never run');
diff --git a/debian/perl-framework/Apache-Test/t/alltest/all.t b/debian/perl-framework/Apache-Test/t/alltest/all.t
new file mode 100644
index 0000000..ef0033c
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/alltest/all.t
@@ -0,0 +1,8 @@
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+
+plan tests => 1, skip_reason('testing all.t');
+
+ok 1;
diff --git a/debian/perl-framework/Apache-Test/t/alltest2/01bang.t b/debian/perl-framework/Apache-Test/t/alltest2/01bang.t
new file mode 100644
index 0000000..3782ade
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/alltest2/01bang.t
@@ -0,0 +1,5 @@
+use Apache::Test;
+
+plan tests => 1;
+
+ok (0, 'this test should never run');
diff --git a/debian/perl-framework/Apache-Test/t/alltest2/all.t b/debian/perl-framework/Apache-Test/t/alltest2/all.t
new file mode 100644
index 0000000..0393608
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/alltest2/all.t
@@ -0,0 +1,8 @@
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+
+plan tests => 1, skip_reason('testing more than one all.t');
+
+ok 1;
diff --git a/debian/perl-framework/Apache-Test/t/bad_coding.t b/debian/perl-framework/Apache-Test/t/bad_coding.t
new file mode 100644
index 0000000..4e445a1
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/bad_coding.t
@@ -0,0 +1,22 @@
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+use Apache::TestRequest;
+
+# This test tests how good Apache-Test deals with bad coding practices
+# of its users
+
+plan tests => 1;
+
+{
+ # passing $_ to a non-core function inside a foreach loop or
+ # similar, may affect $_ on return -- badly breaking things and
+ # making it hard to figure out where the problem is coming from.
+ #
+ # have_* macros localize $_ for these bad programming cases
+ # let's test that:
+ my @list = ('mod_dir');
+ my %modules = map { $_, have_module($_) } @list;
+ ok 1;
+}
diff --git a/debian/perl-framework/Apache-Test/t/cgi-bin/cookies.pl.PL b/debian/perl-framework/Apache-Test/t/cgi-bin/cookies.pl.PL
new file mode 100644
index 0000000..b409448
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/cgi-bin/cookies.pl.PL
@@ -0,0 +1,16 @@
+#!perl -wT
+
+use strict;
+
+use CGI;
+use CGI::Cookie;
+
+my %cookies = CGI::Cookie->fetch;
+my $name = 'ApacheTest';
+my $c = ! exists $cookies{$name}
+ ? CGI::Cookie->new(-name=>$name, -value=>time)
+ : '';
+
+print "Set-Cookie: $c\n" if $c;
+print "Content-Type: text/plain\n\n";
+print ($c ? 'new' : 'exists'), "\n";
diff --git a/debian/perl-framework/Apache-Test/t/cgi-bin/next_available_port.pl.PL b/debian/perl-framework/Apache-Test/t/cgi-bin/next_available_port.pl.PL
new file mode 100644
index 0000000..855b45b
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/cgi-bin/next_available_port.pl.PL
@@ -0,0 +1,4 @@
+use strict;
+
+print "Content-Type: text/plain\n\n";
+print $ENV{NextAvailablePort} || '';
diff --git a/debian/perl-framework/Apache-Test/t/conf/extra.conf.in b/debian/perl-framework/Apache-Test/t/conf/extra.conf.in
new file mode 100644
index 0000000..5d3a611
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/conf/extra.conf.in
@@ -0,0 +1,46 @@
+#this file will be Include-d by @ServerRoot@/httpd.conf
+
+#the subclass inside t/TEST added the authname and allowed_users variables
+<IfModule mod_alias.c>
+ Redirect /redirect http://@ServerName@/redirected/
+</IfModule>
+
+<IfModule mod_perl.c>
+
+ <Location /TestMore__testpm>
+ SetHandler perl-script
+ <IfDefine APACHE2>
+ PerlResponseHandler TestMore::testpm
+ </IfDefine>
+ <IfDefine APACHE1>
+ PerlHandler TestMore::testpm
+ </IfDefine>
+ </Location>
+
+ <Location /TestMore__testmorepm>
+ SetHandler perl-script
+ <IfDefine APACHE2>
+ PerlResponseHandler TestMore::testmorepm
+ </IfDefine>
+ <IfDefine APACHE1>
+ PerlHandler TestMore::testmorepm
+ </IfDefine>
+ </Location>
+</IfModule>
+
+
+<IfModule @CGI_MODULE@>
+ ScriptAlias /cgi-bin/ "@ServerRoot@/cgi-bin/"
+
+ <Directory "@ServerRoot@/cgi-bin/">
+ AllowOverride None
+ Options +ExecCGI
+ </Directory>
+
+ # t/next_available_port.t
+ <IfModule mod_env.c>
+ SetEnv NextAvailablePort @NextAvailablePort@
+ </IfModule>
+
+</IfModule>
+
diff --git a/debian/perl-framework/Apache-Test/t/conf/modperl_extra.pl.in b/debian/perl-framework/Apache-Test/t/conf/modperl_extra.pl.in
new file mode 100644
index 0000000..e856cb5
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/conf/modperl_extra.pl.in
@@ -0,0 +1,13 @@
+use strict;
+use warnings FATAL => qw(all);
+
+use File::Spec ();
+
+use lib (); # empty so we can calculate the lib to use
+
+my @libs = (File::Spec->catfile('@ServerRoot@', 'response'),
+ File::Spec->catfile('@ServerRoot@', qw(.. lib)));
+
+lib->import(@libs);
+
+1;
diff --git a/debian/perl-framework/Apache-Test/t/cookies.t b/debian/perl-framework/Apache-Test/t/cookies.t
new file mode 100644
index 0000000..63f2a4d
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/cookies.t
@@ -0,0 +1,18 @@
+# this test tests how a cookie jar can be passed (needs lwp)
+
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+use Apache::TestRequest;
+use Apache::TestUtil;
+
+plan tests => 2, need [qw(CGI CGI::Cookie)],
+ need_cgi, need_lwp, need need_module('mod_alias.c');
+
+Apache::TestRequest::user_agent( cookie_jar => {} );
+
+my $url = '/cgi-bin/cookies.pl';
+
+ok t_cmp GET_BODY($url), 'new', "new cookie";
+ok t_cmp GET_BODY($url), 'exists', "existing cookie";
diff --git a/debian/perl-framework/Apache-Test/t/import.t b/debian/perl-framework/Apache-Test/t/import.t
new file mode 100644
index 0000000..1dbd747
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/import.t
@@ -0,0 +1,145 @@
+#!perl
+
+use strict;
+use warnings FATAL=>'all';
+use Test ();
+
+Test::plan tests=>47;
+
+sub t {
+ my $p=$_[0];
+ no strict 'refs';
+ Test::ok defined &{$p."::ok"} && \&{$p."::ok"}==\&Test::ok,
+ 1, "$p - ok";
+ Test::ok defined &{$p."::need"} && \&{$p."::need"}==\&Apache::Test::need,
+ 1, "$p - need";
+ Test::ok defined &{$p."::plan"} && \&{$p."::plan"}==\&Apache::Test::plan,
+ 1, "$p - plan";
+}
+
+sub tm {
+ my $p=$_[0];
+ no strict 'refs';
+ Test::ok defined &{$p."::ok"} && \&{$p."::ok"}==\&Test::More::ok,
+ 1, "$p - ok";
+ Test::ok defined &{$p."::need"} && \&{$p."::need"}==\&Apache::Test::need,
+ 1, "$p - need";
+ Test::ok defined &{$p."::plan"} && \&{$p."::plan"}==\&Apache::Test::plan,
+ 1, "$p - plan";
+}
+
+{package X0; use Apache::Test;}
+{package Y0; use Apache::Test qw/-withtestmore/;}
+
+t 'X0';
+tm 'Y0';
+
+{package X1; use Apache::Test qw/:DEFAULT/;}
+{package Y1; use Apache::Test qw/-withtestmore :DEFAULT/;}
+
+t 'X1';
+tm 'Y1';
+
+{package X2; use Apache::Test qw/!:DEFAULT/;}
+{package Y2; use Apache::Test qw/-withtestmore !:DEFAULT/;}
+
+Test::ok !defined &X2::ok, 1, '!defined &X2::ok';
+Test::ok !defined &X2::need, 1, '!defined &X2::need';
+Test::ok !defined &X2::plan, 1, '!defined &X2::plan';
+Test::ok !defined &Y2::ok, 1, '!defined &Y2::ok';
+Test::ok !defined &Y2::need, 1, '!defined &Y2::need';
+Test::ok !defined &Y2::plan, 1, '!defined &Y2::plan';
+
+{package X3; use Apache::Test qw/plan/;}
+{package Y3; use Apache::Test qw/-withtestmore plan/;}
+
+Test::ok !defined &X3::ok, 1, '!defined &X3::ok';
+Test::ok !defined &X3::need, 1, '!defined &X3::need';
+Test::ok defined &X3::plan && \&X3::plan==\&Apache::Test::plan, 1, "X3 - plan";
+Test::ok !defined &Y3::ok, 1, '!defined &Y3::ok';
+Test::ok !defined &Y3::need, 1, '!defined &Y3::need';
+Test::ok defined &Y3::plan && \&Y3::plan==\&Apache::Test::plan, 1, "Y3 - plan";
+
+{package X4; use Apache::Test qw/need/;}
+{package Y4; use Apache::Test qw/-withtestmore need/;}
+
+Test::ok !defined &X4::ok, 1, '!defined &X4::ok';
+Test::ok defined &X4::need && \&X4::need==\&Apache::Test::need, 1, "X4 - need";
+Test::ok !defined &X4::plan, 1, '!defined &X4::plan';
+Test::ok !defined &Y4::ok, 1, '!defined &Y4::ok';
+Test::ok defined &Y4::need && \&Y4::need==\&Apache::Test::need, 1, "Y4 - need";
+Test::ok !defined &Y4::plan, 1, '!defined &Y4::plan';
+
+{package X5; use Apache::Test qw/ok/;}
+{package Y5; use Apache::Test qw/-withtestmore ok/;}
+
+Test::ok defined &X5::ok && \&X5::ok==\&Test::ok, 1, "X5 - ok";
+Test::ok !defined &X5::need, 1, '!defined &X5::need';
+Test::ok !defined &X5::plan, 1, '!defined &X5::plan';
+Test::ok defined &Y5::ok && \&Y5::ok==\&Test::More::ok, 1, "Y5 - ok";
+Test::ok !defined &Y5::need, 1, '!defined &Y5::need';
+Test::ok !defined &Y5::plan, 1, '!defined &Y5::plan';
+
+{package X6; use Apache::Test qw/ok need/;}
+{package Y6; use Apache::Test qw/-withtestmore ok need/;}
+
+Test::ok defined &X6::ok && \&X6::ok==\&Test::ok, 1, "X6 - ok";
+Test::ok defined &X6::need && \&X6::need==\&Apache::Test::need, 1, "X6 - need";
+Test::ok !defined &X6::plan, 1, '!defined &X6::plan';
+Test::ok defined &Y6::ok && \&Y6::ok==\&Test::More::ok, 1, "Y6 - ok";
+Test::ok defined &Y6::need && \&Y6::need==\&Apache::Test::need, 1, "Y6 - need";
+Test::ok !defined &Y6::plan, 1, '!defined &Y6::plan';
+
+my $warning;
+{
+ local $SIG{__WARN__}=sub {$warning=join '', @_};
+ eval <<'EVAL';
+package Z0;
+use Apache::Test qw/:withtestmore/;
+EVAL
+}
+Test::ok $warning, qr/^Ignoring import spec :withtestmore at/,
+ "Ignore import warning";
+
+undef $warning;
+{
+ local $SIG{__WARN__}=sub {$warning=join '', @_};
+ eval <<'EVAL';
+package X0;
+use Apache::Test qw/-withtestmore/;
+EVAL
+}
+Test::ok $warning, qr/^Ignoring -withtestmore due to a previous call /,
+ "Ignore -withtestmore warning";
+
+use Config ();
+my $pio=$Config::Config{useperlio} ? '' : 'need perlio';
+my $output;
+Test::skip $pio, sub {
+ my @res;
+ {
+ local $Test::ntest=-19;
+ local $Test::planned=-42;
+ package Y2; # uses Apache::Test qw/-withtestmore !:DEFAULT/
+ # so nothing is exported
+
+ local *STDOUT;
+ open STDOUT, '>', \$output;
+ {
+ # suppress an 'uninitialized' warning in older perl versions
+ local $SIG{__WARN__}=sub {
+ warn $_[0]
+ unless $_[0]=~m!uninitialized\svalue\sin\sopen\b.+
+ Test/Builder\.pm!x;
+ };
+ Apache::Test::plan tests=>17;
+ }
+ Test::More::isnt "hugo", "erwin", "hugo is not erwin";
+ @res=($Test::ntest, $Test::planned);
+ Test::Builder->new->reset;
+ }
+ return "@res";
+}, '-19 -42', '$Test::ntest, $Test::planned did not change';
+
+Test::skip $pio, $output=~/^1\.\.17$/m;
+Test::skip $pio, $output=~/^ok 1 - hugo is not erwin$/m;
diff --git a/debian/perl-framework/Apache-Test/t/log_watch.t b/debian/perl-framework/Apache-Test/t/log_watch.t
new file mode 100644
index 0000000..7a69f3f
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/log_watch.t
@@ -0,0 +1,76 @@
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+use Apache::TestUtil qw/t_start_file_watch
+ t_read_file_watch
+ t_finish_file_watch
+ t_write_file
+ t_append_file
+ t_catfile
+ t_cmp/;
+
+plan tests => 11;
+
+my $fn=t_catfile(Apache::Test::vars->{t_logs}, 'watch');
+unlink $fn;
+
+t_start_file_watch 'watch';
+
+t_write_file $fn, "1\n2\n";
+
+ok t_cmp [t_read_file_watch 'watch'], ["1\n", "2\n"],
+ "t_read_file_watch on previously non-existing file";
+
+t_append_file $fn, "3\n4\n";
+
+ok t_cmp [t_read_file_watch 'watch'], ["3\n", "4\n"],
+ "subsequent t_read_file_watch";
+
+t_append_file $fn, "5\n6\n";
+
+ok t_cmp [t_finish_file_watch 'watch'], ["5\n", "6\n"],
+ "subsequent t_finish_file_watch";
+
+ok t_cmp [t_finish_file_watch 'watch'], ["1\n","2\n","3\n","4\n","5\n","6\n"],
+ "t_finish_file_watch w/o start";
+
+ok t_cmp [t_read_file_watch 'watch'], ["1\n","2\n","3\n","4\n","5\n","6\n"],
+ "t_read_file_watch w/o start";
+
+ok t_cmp [t_read_file_watch 'watch'], [],
+ "subsequent t_read_file_watch";
+
+t_append_file $fn, "7\n8\n";
+unlink $fn;
+
+ok t_cmp [t_read_file_watch 'watch'], ["7\n","8\n"],
+ "subsequent t_read_file_watch file unlinked";
+
+t_write_file $fn, "1\n2\n3\n4\n5\n6\n7\n8\n";
+
+ok t_cmp [t_finish_file_watch 'watch'], [],
+ "subsequent t_finish_file_watch - new file exists but fh is cached";
+
+t_start_file_watch 'watch';
+
+ok t_cmp [t_read_file_watch 'watch'], [],
+ "t_read_file_watch at EOF";
+
+# Make sure the file is closed before deleting it on Windows.
+t_finish_file_watch 'watch' if $^O eq 'MSWin32';
+
+unlink $fn;
+t_start_file_watch 'watch';
+
+t_write_file $fn, "1\n2\n3\n4\n5\n6\n7\n8\n";
+
+{
+ local $/=\4;
+
+ ok t_cmp [scalar t_read_file_watch 'watch'], ["1\n2\n"],
+ "t_read_file_watch fixed record length / scalar context";
+
+ ok t_cmp [t_finish_file_watch 'watch'], ["3\n4\n","5\n6\n","7\n8\n"],
+ "t_finish_file_watch fixed record length";
+}
diff --git a/debian/perl-framework/Apache-Test/t/log_watch_for_broken_lines.t b/debian/perl-framework/Apache-Test/t/log_watch_for_broken_lines.t
new file mode 100644
index 0000000..108e10c
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/log_watch_for_broken_lines.t
@@ -0,0 +1,40 @@
+#!perl
+
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+use Apache::TestUtil qw/t_start_file_watch t_file_watch_for
+ t_cmp t_catfile t_append_file/;
+
+plan tests => 5, need_fork;
+
+my $fn=t_catfile(Apache::Test::vars->{t_logs}, 'watch');
+unlink $fn;
+
+t_start_file_watch 'watch';
+
+my $pid;
+select undef, undef, undef, 0.1 until defined($pid=fork);
+unless ($pid) { # child
+ t_append_file $fn, "\nhuhu\n4 5 6 \nblabla\n";
+ for(1..3) {
+ select undef, undef, undef, 0.3;
+ t_append_file $fn, "$_ ";
+ }
+ t_append_file $fn, "\nhuhu\n4 5 6 \nblabla";
+ exit 0;
+}
+
+ok t_cmp t_file_watch_for('watch', qr/^1 2 3 $/, 2),
+ "1 2 3 \n", 'incomplete line';
+
+my @lines=t_file_watch_for('watch', qr/^\d \d \d $/, 2);
+ok t_cmp @lines, 2, '2 lines';
+ok t_cmp $lines[0], "huhu\n", '1st line';
+ok t_cmp $lines[1], "4 5 6 \n", 'found it';
+
+ok t_cmp t_file_watch_for('watch', qr/^\d \d \d $/, 0.3),
+ undef, 'timeout';
+
+waitpid $pid, 0;
diff --git a/debian/perl-framework/Apache-Test/t/more/01testpm.t b/debian/perl-framework/Apache-Test/t/more/01testpm.t
new file mode 100644
index 0000000..0883e92
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/more/01testpm.t
@@ -0,0 +1,8 @@
+# see the description in t/more/all.t
+
+use strict;
+use warnings FATAL => qw(all);
+
+use Apache::TestRequest 'GET_BODY_ASSERT';
+print GET_BODY_ASSERT "/TestMore__testpm";
+
diff --git a/debian/perl-framework/Apache-Test/t/more/02testmore.t b/debian/perl-framework/Apache-Test/t/more/02testmore.t
new file mode 100644
index 0000000..440f39c
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/more/02testmore.t
@@ -0,0 +1,8 @@
+# see the description in t/more/all.t
+
+use strict;
+use warnings FATAL => qw(all);
+
+use Apache::TestRequest 'GET_BODY_ASSERT';
+print GET_BODY_ASSERT "/TestMore__testmorepm";
+
diff --git a/debian/perl-framework/Apache-Test/t/more/03testpm.t b/debian/perl-framework/Apache-Test/t/more/03testpm.t
new file mode 100644
index 0000000..0883e92
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/more/03testpm.t
@@ -0,0 +1,8 @@
+# see the description in t/more/all.t
+
+use strict;
+use warnings FATAL => qw(all);
+
+use Apache::TestRequest 'GET_BODY_ASSERT';
+print GET_BODY_ASSERT "/TestMore__testpm";
+
diff --git a/debian/perl-framework/Apache-Test/t/more/04testmore.t b/debian/perl-framework/Apache-Test/t/more/04testmore.t
new file mode 100644
index 0000000..440f39c
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/more/04testmore.t
@@ -0,0 +1,8 @@
+# see the description in t/more/all.t
+
+use strict;
+use warnings FATAL => qw(all);
+
+use Apache::TestRequest 'GET_BODY_ASSERT';
+print GET_BODY_ASSERT "/TestMore__testmorepm";
+
diff --git a/debian/perl-framework/Apache-Test/t/more/all.t b/debian/perl-framework/Apache-Test/t/more/all.t
new file mode 100644
index 0000000..c36a2dc
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/more/all.t
@@ -0,0 +1,28 @@
+# skip all the Test::More tests if Test::More is
+# not of a sufficient version;
+
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+
+plan tests => 1, need need_min_module_version(qw(Test::More 0.48_01)),
+ need_module('mod_perl.c');
+
+ok 1;
+
+
+# the t/more/ directory is testing a few things.
+#
+# first, it is testing that the special
+# Apache::Test qw(-withtestmore);
+# import works, which allows Apache::Test to use
+# Test::More as the backend (in place of Test.pm)
+# for server-side tests.
+#
+# secondly, it is testing that we can intermix
+# scripts that use Test.pm and Test::More as the
+# backend, which was a bug that needed to be worked
+# around in early implementations of -withtestmore.
+# hence the reason for the specific ordering of the
+# tests in t/more/.
diff --git a/debian/perl-framework/Apache-Test/t/next_available_port.t b/debian/perl-framework/Apache-Test/t/next_available_port.t
new file mode 100644
index 0000000..1eff85d
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/next_available_port.t
@@ -0,0 +1,16 @@
+# this test tests how a cookie jar can be passed (needs lwp)
+
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+use Apache::TestRequest;
+use Apache::TestUtil;
+
+plan tests => 1, need need_cgi,
+ need_module('mod_env.c');
+
+my $url = '/cgi-bin/next_available_port.pl';
+
+my $port = GET_BODY($url) || '';
+ok $port, qr/^\d+$/, "next available port number";
diff --git a/debian/perl-framework/Apache-Test/t/ping.t b/debian/perl-framework/Apache-Test/t/ping.t
new file mode 100644
index 0000000..a84bf95
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/ping.t
@@ -0,0 +1,17 @@
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+
+plan tests => 3;
+
+my $config = Apache::Test::config();
+
+ok $config;
+
+my $server = $config->server;
+
+ok $server;
+
+ok $server->ping;
+
diff --git a/debian/perl-framework/Apache-Test/t/redirect.t b/debian/perl-framework/Apache-Test/t/redirect.t
new file mode 100644
index 0000000..6df2ef4
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/redirect.t
@@ -0,0 +1,23 @@
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+use Apache::TestRequest;
+
+plan tests => 6, need need_module('mod_alias.c'), need_lwp;
+
+my $url = '/redirect';
+
+# Allow request to be redirected.
+ok my $res = GET $url;
+ok ! $res->is_redirect;
+
+# Don't let request be redirected.
+ok $res = GET($url, redirect_ok => 0);
+ok $res->is_redirect;
+
+# Allow no more requests to be redirected.
+Apache::TestRequest::user_agent(reset => 1,
+ requests_redirectable => 0);
+ok $res = GET $url;
+ok $res->is_redirect;
diff --git a/debian/perl-framework/Apache-Test/t/request.t b/debian/perl-framework/Apache-Test/t/request.t
new file mode 100644
index 0000000..63be945
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/request.t
@@ -0,0 +1,28 @@
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+use Apache::TestRequest;
+
+plan tests => 9, \&need_lwp;
+
+my $url = '/index.html';
+
+ok GET_OK $url;
+ok GET_RC $url;
+ok GET_STR $url;
+ok GET_BODY $url;
+
+ok HEAD_OK $url;
+ok HEAD_RC $url;
+ok HEAD_STR $url;
+
+ok GET_OK $url, username => 'dougm', password => 'XXXX'; #e.g. for auth
+
+ok GET_OK $url, Referer => $0; #add headers
+
+#post a string
+#ok POST_OK $url, content => 'post body data';
+
+#or key/value pairs (see HTTP::Request::Common
+#ok POST_OK $url, [university => 'arizona', team => 'wildcats']
diff --git a/debian/perl-framework/Apache-Test/t/response/TestMore/testmorepm.pm b/debian/perl-framework/Apache-Test/t/response/TestMore/testmorepm.pm
new file mode 100644
index 0000000..12cb491
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/response/TestMore/testmorepm.pm
@@ -0,0 +1,21 @@
+package TestMore::testmorepm;
+
+use strict;
+use warnings FATAL => qw(all);
+
+use Test::More;
+use Apache::Test qw(-withtestmore);
+
+sub handler {
+
+ plan shift, tests => 2;
+
+ is (1, 1, 'called Test::More::is()');
+
+ like ('wow', qr/wow/, 'called Test::More::like()');
+
+ 0;
+
+}
+
+1;
diff --git a/debian/perl-framework/Apache-Test/t/response/TestMore/testpm.pm b/debian/perl-framework/Apache-Test/t/response/TestMore/testpm.pm
new file mode 100644
index 0000000..8c550ed
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/response/TestMore/testpm.pm
@@ -0,0 +1,18 @@
+package TestMore::testpm;
+
+use strict;
+use warnings FATAL => qw(all);
+
+use Apache::Test;
+use Apache::TestUtil;
+
+sub handler {
+
+ plan shift, tests => 1;
+
+ ok t_cmp(1, 1, 'called Apache::Test::ok()');
+
+ 0;
+}
+
+1;
diff --git a/debian/perl-framework/Apache-Test/t/sok.t b/debian/perl-framework/Apache-Test/t/sok.t
new file mode 100644
index 0000000..cb7efdb
--- /dev/null
+++ b/debian/perl-framework/Apache-Test/t/sok.t
@@ -0,0 +1,168 @@
+#!perl
+
+use strict;
+use warnings FATAL=>'all';
+
+use Test ();
+use Config ();
+unless ($Config::Config{useperlio}) {
+ print "1..0 # need perlio\n";
+ exit 0;
+}
+
+Test::plan tests=>8;
+
+my $output;
+{
+ package X0;
+ use Apache::Test;
+
+ local ($Test::planned, $Test::ntest, %Test::todo);
+ local *STDOUT;
+ open STDOUT, '>', \$output;
+
+ local $ENV{HTTPD_TEST_SUBTESTS}="";
+
+ plan tests=>3;
+
+ sok {1};
+ sok {1};
+ sok {1};
+}
+Test::ok $output=~/^ok 1$/m &&
+ $output=~/^ok 2$/m &&
+ $output=~/^ok 3$/m;
+
+{
+ package Y0;
+ use Apache::Test qw/-withtestmore/;
+
+ local *STDOUT;
+ open STDOUT, '>', \$output;
+
+ local $ENV{HTTPD_TEST_SUBTESTS}="";
+
+ plan tests=>3;
+
+ sok {1};
+ sok {1};
+ sok {1};
+}
+Test::ok $output=~/^ok 1$/m &&
+ $output=~/^ok 2$/m &&
+ $output=~/^ok 3$/m;
+
+{
+ package X0;
+
+ local ($Test::planned, $Test::ntest, %Test::todo);
+ local *STDOUT;
+ open STDOUT, '>', \$output;
+
+ local $ENV{HTTPD_TEST_SUBTESTS}="1 3";
+
+ plan tests=>3;
+
+ sok {1};
+ sok {1};
+ sok {1};
+}
+Test::ok $output=~/^ok 1$/m &&
+ $output=~/^ok 2 # skip skipping this subtest$/mi &&
+ $output=~/^ok 3$/m;
+
+{
+ package Y0;
+
+ local *STDOUT;
+ open STDOUT, '>', \$output;
+
+ local $ENV{HTTPD_TEST_SUBTESTS}="1 3";
+
+ plan tests=>3;
+
+ sok {1};
+ sok {1};
+ sok {1};
+}
+Test::ok $output=~/^ok 1$/m &&
+ $output=~/^ok 2 # skip skipping this subtest$/mi &&
+ $output=~/^ok 3$/m;
+
+{
+ package X0;
+
+ local ($Test::planned, $Test::ntest, %Test::todo);
+ local *STDOUT;
+ open STDOUT, '>', \$output;
+
+ local $ENV{HTTPD_TEST_SUBTESTS}="";
+
+ plan tests=>4;
+
+ sok {1};
+ sok {ok 1; 1} 2;
+ sok {1};
+}
+Test::ok $output=~/^ok 1$/m &&
+ $output=~/^ok 2$/m &&
+ $output=~/^ok 3$/m &&
+ $output=~/^ok 4$/m;
+
+{
+ package Y0;
+
+ local *STDOUT;
+ open STDOUT, '>', \$output;
+
+ local $ENV{HTTPD_TEST_SUBTESTS}="";
+
+ plan tests=>4;
+
+ sok {1};
+ sok {ok 1, "erwin"} 2;
+ sok {1};
+}
+Test::ok $output=~/^ok 1$/m &&
+ $output=~/^ok 2 - erwin$/m &&
+ $output=~/^ok 3$/m &&
+ $output=~/^ok 4$/m;
+
+{
+ package X0;
+
+ local ($Test::planned, $Test::ntest, %Test::todo);
+ local *STDOUT;
+ open STDOUT, '>', \$output;
+
+ local $ENV{HTTPD_TEST_SUBTESTS}="1 4";
+
+ plan tests=>4;
+
+ sok {1};
+ sok {ok 1; 1} 2;
+ sok {1};
+}
+Test::ok $output=~/^ok 1$/m &&
+ $output=~/^ok 2 # skip skipping this subtest$/mi &&
+ $output=~/^ok 3 # skip skipping this subtest$/mi &&
+ $output=~/^ok 4$/m;
+
+{
+ package Y0;
+
+ local *STDOUT;
+ open STDOUT, '>', \$output;
+
+ local $ENV{HTTPD_TEST_SUBTESTS}="1 4";
+
+ plan tests=>4;
+
+ sok {1};
+ sok {ok 1} 2;
+ sok {1};
+}
+Test::ok $output=~/^ok 1$/m &&
+ $output=~/^ok 2 # skip skipping this subtest$/mi &&
+ $output=~/^ok 3 # skip skipping this subtest$/mi &&
+ $output=~/^ok 4$/m;