use Test::More;
use CGI::Application;
eval { require CGI::PSGI; };
# XXX, really, we need CGI::PSGI 0.09 or later.
if ($@) {
plan 'skip_all' => 'CGI::PSGI is not available';
}
else {
plan 'no_plan';
}
# Set up a CGI environment
my $env;
$env->{REQUEST_METHOD} = 'GET';
$env->{QUERY_STRING} = 'game=chess&game=checkers&weather=dull';
$env->{PATH_INFO} = '/somewhere/else';
$env->{PATH_TRANSLATED} = '/usr/local/somewhere/else';
$env->{SCRIPT_NAME} = '/cgi-bin/foo.cgi';
$env->{SERVER_PROTOCOL} = 'HTTP/1.0';
$env->{SERVER_PORT} = 8080;
$env->{SERVER_NAME} = 'the.good.ship.lollypop.com';
$env->{REQUEST_URI} = "$env->{SCRIPT_NAME}$env->{PATH_INFO}?$env->{QUERY_STRING}";
$env->{HTTP_LOVE} = 'true';
package TestApp;
use base 'CGI::Application';
sub setup {
my $self = shift;
$self->run_modes(
start => sub { 'Hello World' },
);
}
package main;
my $app = TestApp->new( QUERY => CGI::PSGI->new($env) );
my $response = $app->run_as_psgi;
is_deeply $response, [
'200',
[ 'Content-Type' => 'text/html; charset=ISO-8859-1' ],
[ 'Hello World' ],
],
"run_as_psgi: reality check basic response";