Commit | Line | Data |
5dbf12d1 |
1 | use strict; |
2 | use warnings; |
3 | use Test::More; |
66d44648 |
4 | |
5 | BEGIN { |
6 | plan skip_all => 'these tests should probably be moved to plack, or at least ported away from Engine::CGI'; |
7 | } |
8 | |
5dbf12d1 |
9 | use FindBin qw/$Bin/; |
10 | use lib "$Bin/../lib"; |
11 | use TestApp; |
12 | use Catalyst::Engine::CGI; |
13 | |
eb3abf96 |
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 | |
b760ac3d |
58 | # Using rewrite rules to ask for a sub-path in your app. |
59 | # E.g. RewriteRule ^(.*)$ /path/to/fastcgi/domainprofi.fcgi/iframeredirect$1 [L,NS] |
60 | { |
61 | my $r = get_req ( |
62 | PATH_INFO => '/iframeredirect/info', |
63 | SCRIPT_NAME => '', |
64 | REQUEST_URI => '/info', |
65 | ); |
66 | is ''.$r->uri, 'http://www.foo.com/iframeredirect/info'; |
67 | is ''.$r->base, 'http://www.foo.com/'; |
68 | } |
69 | |
70 | |
71 | |
eb3abf96 |
72 | # FIXME - Test proxy logic |
eb3abf96 |
73 | # - Test query string |
74 | # - Test non standard port numbers |
75 | # - Test // in PATH_INFO |
76 | # - Test scheme (secure request on port 80) |
77 | |
78 | sub get_req { |
ee1ea13f |
79 | my %template = ( |
80 | HTTP_HOST => 'www.foo.com', |
81 | PATH_INFO => '/', |
82 | ); |
83 | |
eb3abf96 |
84 | local %ENV = (%template, @_); |
ee1ea13f |
85 | |
5dbf12d1 |
86 | my $i = TestApp->new; |
87 | $i->engine(Catalyst::Engine::CGI->new); |
88 | $i->engine->prepare_path($i); |
eb3abf96 |
89 | return $i->req; |
5dbf12d1 |
90 | } |
91 | |
92 | done_testing; |
93 | |