fix tests for new HTTP::Request::AsCGI, release
[catagits/Catalyst-Controller-WrapCGI.git] / t / wrap-cgi.t
1 #!perl
2
3 use strict;
4 use warnings;
5
6 use FindBin '$Bin';
7 use lib "$Bin/lib";
8
9 use Test::More tests => 7;
10
11 use Catalyst::Test 'TestApp';
12 use HTTP::Request::Common;
13
14 my $response = request POST '/cgi-bin/test.cgi', [
15     foo => 'bar',
16     bar => 'baz'
17 ];
18
19 is($response->content, 'foo:bar bar:baz', 'POST to CGI');
20
21 $response = request POST '/cgi-bin/test.cgi', [
22   foo => 'bar',
23   bar => 'baz',
24 ], User_Agent => 'perl/5', Content_Type => 'form-data';
25
26 is($response->content, 'foo:bar bar:baz', 'POST to CGI (form-data)');
27
28 $response = request POST '/cgi-bin/test.cgi',
29   Content => [
30     foo => 1,
31     bar => 2,
32     baz => [
33         undef,
34         'baz',
35         'Some-Header' => 'blah',
36         'Content-Type' => 'text/plain',
37         Content => 3
38     ],
39     quux => [ undef, quux => Content => 4 ],
40   ],
41   User_Agent => 'perl/5',
42   Content_Type => 'form-data';
43
44 is($response->content, 'foo:1 bar:2 baz:3 quux:4', 'POST with file upload');
45
46 $response = request '/cgi-bin/test_pathinfo.cgi/path/%2Finfo';
47 is($response->content, '/path//info', 'PATH_INFO is correct');
48
49 $response = request '/cgi-bin/test_filepathinfo.cgi/path/%2Finfo';
50 is($response->content, '/test_filepath_info/path//info',
51     'FILEPATH_INFO is correct');
52
53 $response = request '/cgi-bin/mtfnpy/test_scriptname.cgi/foo/bar';
54 is($response->content, '/cgi-bin/mtfnpy/test_scriptname.cgi',
55     'SCRIPT_NAME is correct');
56
57 SKIP: {
58   require Catalyst;
59
60   skip 'no $c->req->remote_user', 1
61     if $Catalyst::VERSION < 5.80005;
62
63   $ENV{REMOTE_USER} = 'TEST_USER';
64   $response = request '/cgi-bin/test_remote_user.cgi';
65   is($response->content, 'TEST_USER', 'REMOTE_USER was passed');
66 }