Changelog, bump version
[catagits/Catalyst-Runtime.git] / t / aggregate / unit_core_engine_cgi-prepare_path.t
CommitLineData
5dbf12d1 1use strict;
2use warnings;
3use Test::More;
4use FindBin qw/$Bin/;
5use lib "$Bin/../lib";
6use TestApp;
7use Catalyst::Engine::CGI;
8
5d4f9ed7 9our %template = (
eb3abf96 10 HTTP_HOST => 'www.foo.com',
11 PATH_INFO => '/',
12);
13
14# mod_rewrite to app root for non / based app
5dbf12d1 15{
eb3abf96 16 my $r = get_req (
5dbf12d1 17 REDIRECT_URL => '/comics/',
5dbf12d1 18 SCRIPT_NAME => '/comics/dispatch.cgi',
19 REQUEST_URI => '/comics/',
20 );
eb3abf96 21 is ''.$r->uri, 'http://www.foo.com/comics/';
22 is ''.$r->base, 'http://www.foo.com/comics/';
23}
24
25# mod_rewrite to sub path under app root for non / based app
26{
27 my $r = get_req (
28 PATH_INFO => '/foo/bar.gif',
29 REDIRECT_URL => '/comics/foo/bar.gif',
30 SCRIPT_NAME => '/comics/dispatch.cgi',
31 REQUEST_URI => '/comics/foo/bar.gif',
32 );
33 is ''.$r->uri, 'http://www.foo.com/comics/foo/bar.gif';
34 is ''.$r->base, 'http://www.foo.com/comics/';
35}
36
37# Standard CGI hit for non / based app
38{
39 my $r = get_req (
40 PATH_INFO => '/static/css/blueprint/screen.css',
41 SCRIPT_NAME => '/~bobtfish/Gitalist/script/gitalist.cgi',
42 REQUEST_URI => '/~bobtfish/Gitalist/script/gitalist.cgi/static/css/blueprint/screen.css',
43 );
44 is ''.$r->uri, 'http://www.foo.com/~bobtfish/Gitalist/script/gitalist.cgi/static/css/blueprint/screen.css';
45 is ''.$r->base, 'http://www.foo.com/~bobtfish/Gitalist/script/gitalist.cgi/';
46}
53f4422a 47# / %2F %252F escaping case.
48{
49 my $r = get_req (
50 PATH_INFO => '/%2F/%2F',
51 SCRIPT_NAME => '/~bobtfish/Gitalist/script/gitalist.cgi',
52 REQUEST_URI => '/~bobtfish/Gitalist/script/gitalist.cgi/%252F/%252F',
53 );
54 is ''.$r->uri, 'http://www.foo.com/~bobtfish/Gitalist/script/gitalist.cgi/%252F/%252F';
55 is ''.$r->base, 'http://www.foo.com/~bobtfish/Gitalist/script/gitalist.cgi/';
56}
eb3abf96 57
58# FIXME - Test proxy logic
eb3abf96 59# - Test query string
60# - Test non standard port numbers
61# - Test // in PATH_INFO
62# - Test scheme (secure request on port 80)
63
64sub get_req {
65 local %ENV = (%template, @_);
5dbf12d1 66 my $i = TestApp->new;
67 $i->engine(Catalyst::Engine::CGI->new);
68 $i->engine->prepare_path($i);
eb3abf96 69 return $i->req;
5dbf12d1 70}
71
72done_testing;
73