X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Faggregate%2Funit_core_uri_for_action.t;h=c6c767884ad5c1eec2afad27024dfcaddf233357;hb=fcfe92b170baa438adf1ff92057ac007781d02b4;hp=156f79e197eb7f9ebe052eedc00798b1f4bdeb17;hpb=1b666f0f00e409a24119e175633892a9fa2484f2;p=catagits%2FCatalyst-Runtime.git diff --git a/t/aggregate/unit_core_uri_for_action.t b/t/aggregate/unit_core_uri_for_action.t index 156f79e..c6c7678 100644 --- a/t/aggregate/unit_core_uri_for_action.t +++ b/t/aggregate/unit_core_uri_for_action.t @@ -1,5 +1,3 @@ -#!perl - use strict; use warnings; @@ -79,6 +77,46 @@ my $context = TestApp->new( { namespace => 'yada', } ); + + + +# JNAP: I'm going to todo these tests, calling uri_for as a class method +# should work, but its not really useful so I think theres not much harm +# if someone needs this for a business case they are welcome to figure out +# what is going + +TODO: { + local $TODO = "Need to fix using uri_for and uri_for_action as a class method"; + + +# this works, using $ctx +is($context->uri_for($context->controller('Action::Chained')->action_for('endpoint')), + "http://127.0.0.1/foo/yada/chained/foo/end", + "uri_for a controller and action"); + + +# this fails, uri_for returns undef, why isn't this one working?? + is( $context->uri_for_action( '/action/chained/endpoint' ), + 'http://127.0.0.1/chained/foo/end', + "uri_for a controller and action as string"); + +# this fails, uri_for returns undef + is(TestApp->uri_for_action($context->controller('Action::Chained')->action_for('endpoint')), + "/chained/foo/end", + "uri_for a controller and action, called with only class name"); + +# this fails, uri_for returns undef + is(TestApp->uri_for_action('/action/chained/endpoint' ), + "/chained/foo/end", + "uri_for a controller and action as string, called with only class name"); + +# this fails, uri_for returns undef + is(TestApp->uri_for_action( $chained_action), + "/chained/foo/end", + "uri_for action via dispatcher, called with only class name"); +} + + is($context->uri_for($context->controller('Action')), "http://127.0.0.1/foo/yada/action/", "uri_for a controller"); @@ -119,10 +157,10 @@ is($context->uri_for($chained_action, [ 1 ], 2, { q => 1 }), 'uri_for_action correct for chained with multiple capturing actions and args combined' ); my $action_needs_two = '/action/chained/endpoint2'; - + ok( ! defined( $context->uri_for_action($action_needs_two, [1], (2,3)) ), 'uri_for_action returns undef for not enough captures' ); - + is( $context->uri_for_action($action_needs_two, [1,2], (2,3)), 'http://127.0.0.1/foo/chained/foo2/1/2/end2/2/3', 'uri_for_action returns correct uri for correct captures' ); @@ -133,7 +171,7 @@ is($context->uri_for($chained_action, [ 1 ], 2, { q => 1 }), ok( ! defined( $context->uri_for_action($action_needs_two, [1,2,3], (2,3)) ), 'uri_for_action returns undef for too many captures' ); - + is( $context->uri_for_action($action_needs_two, [1,2], (3)), 'http://127.0.0.1/foo/chained/foo2/1/2/end2/3', 'uri_for_action returns uri with lesser args than specified on action' );