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