use lib '.';
use t::Helper;
$ENV{THE_ANSWER} = 42;
use Mojolicious::Lite;
plugin CGI => ['/working' => cgi_script('basic.pl')];
plugin CGI => {route => '/env/basic', script => cgi_script('env.cgi')};
my $t = Test::Mojo->new;
$t->get_ok('/working')->status_is(200)->header_is('Content-Type' => 'text/custom')
->content_is("basic stuff\n");
$t->get_ok($t->tx->req->url->clone->path('/env/basic/foo')->query(query => 123))->status_is(200)
->content_like(qr{^ENVIRONMENT}m, 'ENVIRONMENT')
->content_like(qr{^CONTENT_LENGTH=0}m, 'CONTENT_LENGTH=0')
->content_like(qr{^CONTENT_TYPE=}m, 'CONTENT_TYPE=')
->content_like(qr{^GATEWAY_INTERFACE=CGI/1\.1}m, 'GATEWAY_INTERFACE=CGI/1\.1')
->content_like(qr{^HTTPS=NO}m, 'HTTPS=NO')->content_like(qr{^HTTP_COOKIE=}m, 'HTTP_COOKIE=')
->content_like(qr{^HTTP_HOST=(localhost|127\.0\.0\.1):\d+}m, 'HTTP_HOST=localhost:\d+')
->content_like(qr{^HTTP_REFERER=}m, 'HTTP_REFERER=')
->content_like(qr{^HTTP_USER_AGENT=Mojolicious \(Perl\)}m, 'HTTP_USER_AGENT=Mojolicious \(Perl\)')
->content_like(qr{^PATH_INFO=/foo}m, 'PATH_INFO=/foo')
->content_like(qr{^QUERY_STRING=query=123}m, 'QUERY_STRING=query=123')
->content_like(qr{^REMOTE_ADDR=\d+\S+}m, 'REMOTE_ADDR=\d+\S+')
->content_like(qr{^REMOTE_HOST=[\w\.]+}m, 'REMOTE_HOST=[\w\.]+')
->content_like(qr{^REMOTE_PORT=\w+}m, 'REMOTE_PORT=\w+')
->content_like(qr{^REMOTE_USER=}m, 'REMOTE_USER=')
->content_like(qr{^REQUEST_METHOD=GET}m, 'REQUEST_METHOD=GET')
->content_like(qr{^SCRIPT_FILENAME=\S+/t/cgi-bin/env\.cgi}m,
'SCRIPT_FILENAME=\S+/t/cgi-bin/env\.cgi')
->content_like(qr{^SCRIPT_NAME=/env/basic\W*$}m, 'SCRIPT_NAME=env/basic')
->content_like(qr{^SERVER_PORT=\d+}m, 'SERVER_PORT=\d+')
->content_like(qr{^SERVER_PROTOCOL=HTTP}m, 'SERVER_PROTOCOL=HTTP')
->content_like(qr{^SERVER_SOFTWARE=Mojolicious::Plugin::CGI}m,
'SERVER_SOFTWARE=Mojolicious::Plugin::CGI')->content_like(qr{^THE_ANSWER=42}m, 'THE_ANSWER=42');
$t->get_ok('/env/basic/foo' => {'Referer' => 'http://thorsen.pm', 'X-Forwarded-For' => '1.2.3.4'})
->status_is(200)
->content_like(qr{^HTTP_REFERER=http://thorsen\.pm}m, 'HTTP_REFERER=http://thorsen.pm')
->content_like(qr{^HTTP_X_FORWARDED_FOR=1\.2\.3\.4}m, 'HTTP_X_FORWARDED_FOR=1.2.3.4');
done_testing;