Catalyst-Plugin-CachedUriForAction

 view release on metacpan or  search on metacpan

t/lib/TestApp/Controller/Action/Chained.pm  view on Meta::CPAN

use strict;
use warnings;

use base qw/Catalyst::Controller/;

#
#   Simple parent/child action test
#
sub foo  :PathPart('chained/foo')  :CaptureArgs(1) :Chained('/') {
}
sub endpoint  :PathPart('end')  :Chained('/action/chained/foo')  :Args(1) { }

#
#   Parent/child test with two args each
#
sub foo2 :PathPart('chained/foo2') :CaptureArgs(2) :Chained('/') { }
sub endpoint2 :PathPart('end2') :Chained('/action/chained/foo2') :Args(2) { }

#
#   three chain with concurrent endpoints
#
sub one   :PathPart('chained/one') :Chained('/')                   :CaptureArgs(1) { }
sub two   :PathPart('two')         :Chained('/action/chained/one') :CaptureArgs(2) { }
sub three_end :PathPart('three')       :Chained('two') :Args(3) { }

#
#   Test multiple chained actions with no captures
#
sub empty_chain_a : Chained('/')             PathPart('chained/empty') CaptureArgs(0) { }
sub empty_chain_b : Chained('empty_chain_a') PathPart('')              CaptureArgs(0) { }

t/unit_core_uri_for_action.t  view on Meta::CPAN

is(eval{ TestApp->uri_for_action($index_action, [ 'foo' ]) }, undef,
   "no URI returned for index action when snippets are given");

is(TestApp->uri_for_action($index_action),
   "/action/index",
   "index action returns correct path");

#
#   Chained Action
#
my $chained_action = '/action/chained/endpoint';

is(eval{ TestApp->uri_for_action($chained_action) }, undef,
   "Chained action without captures returns undef");

is(eval{ TestApp->uri_for_action($chained_action, [ 1, 2 ], 1) }, undef,
   "Chained action with too many captures returns undef");

is(TestApp->uri_for_action($chained_action, [ 1 ], 1),
   "/chained/foo/1/end/1",
   "Chained action with correct captures returns correct path");

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 1.331 second using v1.00-cache-2.02-grep-82fe00e-cpan-4673cadbf75 )