use Test::More 'no_plan';
use strict;
$ENV{CGI_APP_RETURN_ONLY} = 1;
{
package MyForward::Test;
use base 'CGI::Application';
use CGI::Application::Plugin::ValidateRM;
use Test::More;
sub setup {
my $self = shift;
$self->start_mode('legacy_process');
$self->run_modes([qw/legacy_process legacy_form/]); }
sub legacy_form {
my $self = shift;
ok(
(not exists $INC{'CGI/Application/Plugin/Forward.pm'})
, "reality check: Forward plugin is not loaded yet.");
is($self->get_current_runmode
, 'legacy_process'
, "if ::Forward is not loaded, current_rm is not updated");
$self->header_type('none');
return "legacy form output";
}
sub legacy_process {
my $self = shift;
my ($results, $err_page) = $self->check_rm('legacy_form', { required => 'fail' });
return $err_page if $err_page;
return 'legacy process completed';
}
my $app = MyForward::Test->new();
my $out = $app->run();
is($out, 'legacy form output', "form is returned");
}
SKIP: {
package MyForward::TestForward;
use base 'CGI::Application';
use CGI::Application::Plugin::ValidateRM;
use Test::More;
eval { require CGI::Application::Plugin::Forward; };
if ($@) {
skip "CGI::Application::Plugin::Forward required", 2;
}
sub setup {
my $self = shift;
$self->start_mode('forward_process');
$self->run_modes([qw/forward_process forward_form/]);
}
sub forward_form {
my $self = shift;
is($self->get_current_runmode, 'forward_form',
"if ::Forward is loaded, current_rm is updated");
$self->header_type('none');
return "forward form output";
}
sub forward_process {
my $self = shift;
my ($results, $err_page) = $self->check_rm('forward_form', { required => 'fail' });
return $err_page if $err_page;
}
my $app = MyForward::TestForward->new;
my $out = $app->run;
is($out, 'forward form output', "form is returned");
}