#!perl -w
use Test::More tests => 9;
# Need CGI.pm for tests
use CGI;
# Include the test hierarchy
use lib './test';
# Prevent output to STDOUT
$ENV{CGI_APP_RETURN_ONLY} = 1;
BEGIN{ chdir './t' };
use lib 'test' ;
use TestApp6 ;
# Test basic cgiapp_prerun() and get_current_runmode()
{
my $ta_obj = TestApp6->new(QUERY=>CGI->new(""));
my $output = $ta_obj->run();
# Did the run-mode work?
like($output, qr/^Content\-Type\:\ text\/html/);
like($output, qr/Hello\ World\:\ prerun\_test\ OK/);
# Did the cgiapp_prerun work?
is($ta_obj->param('PRERUN_RUNMODE'), 'prerun_test');
# get_current_runmode() working?
is($ta_obj->get_current_runmode(), 'prerun_test');
}
# Test basic prerun_mode()
{
local($^W) = undef; # Temporarily disable warnings
my $ta_obj = TestApp6->new(QUERY=>CGI->new('rm=prerun_mode_test'));
my $output = $ta_obj->run();
# Did the run-mode work?
like($output, qr/^Content\-Type\:\ text\/html/);
# We will be in mode 'new_prerun_mode_test' if everything is working
like($output, qr/Hello\ World\:\ new\_prerun\_mode\_test\ OK/);
# get_current_runmode() working?
is($ta_obj->get_current_runmode(), 'new_prerun_mode_test');
}
# Test fail-case for prerun_mode()
{
my $ta_obj = TestApp6->new(QUERY=>CGI->new('rm=illegal_prerun_mode'));
eval {
my $output = $ta_obj->run();
};
my $eval_error = $@;
# Should result in an error
like($eval_error, qr/No page handler found for page/);
}
# Test fail-case for prerun_mode() called from setup()
{
$ENV{PRERUN_IN_SETUP} = 1;
eval {
my $ta_obj = TestApp6->new(QUERY=>CGI->new(""));
};
my $eval_error = $@;
# Should result in an error
like($eval_error, qr/Too early to call/);
}
###############
#### EOF ####
###############