Commit | Line | Data |
fbcc39ad |
1 | use strict; |
2 | use warnings; |
3 | |
d3e7a648 |
4 | use Test::More tests => 7; |
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 | |
bdcb95ef |
39 | $request->mock( 'base', sub { URI->new('http://localhost:3000/') } ); |
40 | $request->mock( 'match', sub { 'orderentry/contract' } ); |
fdba7a9d |
41 | is( |
42 | Catalyst::uri_for( $context, '/Orderentry/saveContract' )->as_string, |
43 | 'http://localhost:3000/Orderentry/saveContract', |
44 | 'URI for absolute path' |
45 | ); |
bdcb95ef |
46 | |
47 | { |
ccc9f8aa |
48 | $request->mock( 'base', sub { URI->new('http://127.0.0.1/') } ); |
bdcb95ef |
49 | |
50 | my $context = Test::MockObject->new; |
ccc9f8aa |
51 | $context->mock( 'request', sub { $request } ); |
52 | $context->mock( 'namespace', sub { '' } ); |
bdcb95ef |
53 | |
54 | is( Catalyst::uri_for( $context, '/bar/baz' )->as_string, |
55 | 'http://127.0.0.1/bar/baz', 'URI with no base or match' ); |
56 | } |