root/lang/perl/HTTPx-Dispatcher/trunk/t/02_uri_for.t @ 25653

Revision 25653, 1.3 kB (checked in by masaki, 4 years ago)

merge from instance-and-declare branch

Line 
1use strict;
2use warnings;
3use Test::Base;
4use YAML;
5use HTTPx::Dispatcher::Declare;
6use HTTP::Request;
7
8plan tests => 1*blocks;
9
10filters {
11    dispatcher => [qw/_eval/],
12    uri_for    => [qw/eval/],
13    expected   => [qw//],
14};
15
16run {
17    my $block = shift;
18    my $dispatcher = $block->dispatcher;
19    is $dispatcher->uri_for( $block->uri_for ), $block->expected;
20}
21
22my $cnt = 1;
23sub _eval {
24    my ($input, ) = @_;
25    my $pkg = "t::Dispatcher::" . ++$cnt;
26
27    eval <<"...";
28    package $pkg;
29    use HTTPx::Dispatcher::Declare;
30    $input;
31...
32
33    return $pkg;
34}
35
36__END__
37
38===
39--- dispatcher: connect ':controller/:action/:id';
40--- uri_for:    {controller => 'blog', action => 'show', id => 3}
41--- expected:   /blog/show/3
42
43===
44--- dispatcher: connect 'blog/:action/:id';
45--- uri_for:    {action => 'show', id => 3}
46--- expected:   /blog/show/3
47
48===
49--- dispatcher
50connect 'blog/:action/:id';
51connect ':controller/:action/:id';
52--- uri_for:    {controller => 'entry', action => 'show', id => 3}
53--- expected:   /entry/show/3
54
55===
56--- dispatcher
57connect 'content/:id' => { controller => 'Content', action => 'show'  };
58--- uri_for:  { controller => 'Content', action => 'show', 'id' => 3 }
59--- expected:   /content/3
60
61===
62--- dispatcher
63connect '' => { controller => 'Root', action => 'index'  };
64--- uri_for:  { controller => 'Root', action => 'index' }
65--- expected:   /
66
Note: See TracBrowser for help on using the browser.