Commit | Line | Data |
fbcc39ad |
1 | use strict; |
2 | use warnings; |
3 | |
5789a3d8 |
4 | use Test::More tests => 9; |
fbcc39ad |
5 | use URI; |
6 | |
fa32ac82 |
7 | use_ok('Catalyst'); |
fbcc39ad |
8 | |
fa32ac82 |
9 | my $request = Catalyst::Request->new( { |
10 | base => URI->new('http://127.0.0.1/foo') |
11 | } ); |
fbcc39ad |
12 | |
fa32ac82 |
13 | my $context = Catalyst->new( { |
14 | request => $request, |
15 | namespace => 'yada', |
16 | } ); |
fbcc39ad |
17 | |
18 | is( |
19 | Catalyst::uri_for( $context, '/bar/baz' )->as_string, |
20 | 'http://127.0.0.1/foo/bar/baz', |
21 | 'URI for absolute path' |
22 | ); |
23 | |
24 | is( |
25 | Catalyst::uri_for( $context, 'bar/baz' )->as_string, |
26 | 'http://127.0.0.1/foo/yada/bar/baz', |
27 | 'URI for relative path' |
28 | ); |
29 | |
d3e7a648 |
30 | is( |
31 | Catalyst::uri_for( $context, '', 'arg1', 'arg2' )->as_string, |
32 | 'http://127.0.0.1/foo/yada/arg1/arg2', |
33 | 'URI for undef action with args' |
34 | ); |
35 | |
36 | |
fbcc39ad |
37 | is( Catalyst::uri_for( $context, '../quux' )->as_string, |
38 | 'http://127.0.0.1/foo/quux', 'URI for relative dot path' ); |
fdba7a9d |
39 | |
8327e2e2 |
40 | is( |
41 | Catalyst::uri_for( $context, 'quux', { param1 => 'value1' } )->as_string, |
42 | 'http://127.0.0.1/foo/yada/quux?param1=value1', |
43 | 'URI for undef action with query params' |
44 | ); |
45 | |
5789a3d8 |
46 | # test with utf-8 |
47 | is( |
48 | Catalyst::uri_for( $context, 'quux', { param1 => "\x{2620}" } )->as_string, |
49 | 'http://127.0.0.1/foo/yada/quux?param1=%E2%98%A0', |
50 | 'URI for undef action with query params in unicode' |
51 | ); |
52 | |
fa32ac82 |
53 | $request->base( URI->new('http://localhost:3000/') ); |
54 | $request->match( 'orderentry/contract' ); |
fdba7a9d |
55 | is( |
56 | Catalyst::uri_for( $context, '/Orderentry/saveContract' )->as_string, |
57 | 'http://localhost:3000/Orderentry/saveContract', |
58 | 'URI for absolute path' |
59 | ); |
bdcb95ef |
60 | |
61 | { |
fa32ac82 |
62 | $request->base( URI->new('http://127.0.0.1/') ); |
bdcb95ef |
63 | |
fa32ac82 |
64 | $context->namespace(''); |
bdcb95ef |
65 | |
66 | is( Catalyst::uri_for( $context, '/bar/baz' )->as_string, |
67 | 'http://127.0.0.1/bar/baz', 'URI with no base or match' ); |
68 | } |
5789a3d8 |
69 | |