X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=t%2Flib%2FTestApp%2FController%2FAction%2FChildOf.pm;h=24fe3692edc1dbdb0f986721536ddb18c850c1e3;hp=837058286427138eae1a282800b3be719ee888ec;hb=9cc849968f79904d340abec75ebd6706746973b6;hpb=d416846e8bfec3729c4846017649fb306838af67 diff --git a/t/lib/TestApp/Controller/Action/ChildOf.pm b/t/lib/TestApp/Controller/Action/ChildOf.pm index 8370582..24fe369 100644 --- a/t/lib/TestApp/Controller/Action/ChildOf.pm +++ b/t/lib/TestApp/Controller/Action/ChildOf.pm @@ -8,6 +8,13 @@ use base qw/Catalyst::Controller/; sub begin :Private { } # +# TODO +# :ChildOf('') defaulting to controller namespace +# :ChildOf('..') defaulting to action in controller above +# :ChildOf == ChildOf('/') +# + +# # Simple parent/child action test # sub foo :PathPart('childof/foo') :Captures(1) :ChildOf('/') { } @@ -22,8 +29,8 @@ sub endpoint2 :PathPart('end2') :ChildOf('/action/childof/foo2') :Args(2) { } # # Relative specification of parent action # -sub bar :PathPart('childof/bar') :ChildOf('/') { } -sub finale :ChildOf('bar') :Args { } +sub bar :PathPart('childof/bar') :ChildOf('/') :Captures(0) { } +sub finale :PathPart('') :ChildOf('bar') :Args { } # # three chain with concurrent endpoints @@ -49,7 +56,7 @@ sub higher_root :PathPart('bar') :ChildOf('/action/childof/foo/higher_root') :Ar # Controller -> subcontroller -> controller # sub pcp1 :PathPart('childof/pcp1') :ChildOf('/') :Captures(1) { } -sub pcp3 :PathPart :ChildOf('/action/childof/foo/pcp2') :Args(1) { } +sub pcp3 :ChildOf('/action/childof/foo/pcp2') :Args(1) { } # # Dispatch on capture number @@ -73,6 +80,23 @@ sub priority_b1 :PathPart('childof/priority_b') :ChildOf('/') :Args(3) { } sub priority_b2 :PathPart('childof/priority_b') :ChildOf('/') :Captures(1) { } sub priority_b2_end :PathPart('end') :ChildOf('priority_b2') :Args(1) { } +# +# Optional specification of :Args in endpoint +# +sub opt_args :PathPart('childof/opt_args') :ChildOf('/') { } + +# +# Optional PathPart test -> /childof/optpp/*/opt_pathpart/* +# +sub opt_pp_start :ChildOf('/') :PathPart('childof/optpp') :Captures(1) { } +sub opt_pathpart :ChildOf('opt_pp_start') :Args(1) { } + +# +# Optional Args *and* PathPart -> /childof/optall/*/oa/... +# +sub opt_all_start :ChildOf('/') :PathPart('childof/optall') :Captures(1) { } +sub oa :ChildOf('opt_all_start') { } + sub end :Private { my ($self, $c) = @_; my $out = join('; ', map { join(', ', @$_) }