X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=t%2Fdead_load_bad_args.t;h=98b566c8a8c9d7b448cebd1260614a161c17dd74;hp=67fe64b8d75c3226ecb1859a900c0dbba47ddf3f;hb=35b3434762d426e0cd5e04eb735291f8ca7ea08e;hpb=dd97c1ac48f275a692de1d2ce980e9d3155d78b9 diff --git a/t/dead_load_bad_args.t b/t/dead_load_bad_args.t index 67fe64b..98b566c 100644 --- a/t/dead_load_bad_args.t +++ b/t/dead_load_bad_args.t @@ -1,31 +1,29 @@ -#!perl - use strict; use warnings; use lib 't/lib'; use Test::More; -plan tests => 16; - use Catalyst::Test 'TestApp'; for my $fail ( "(' ')", "('')", "('1.23')", + "(-1)", ) { - - eval <<"END"; - package TestApp::Controller::Action::Chained; - no warnings 'redefine'; - sub should_fail : Chained('/') Args$fail {} + for my $type (qw(Args CaptureArgs)) { + eval <<"END"; + package TestApp::Controller::Action::Chained; + no warnings 'redefine'; + sub should_fail : Chained('/') ${type}${fail} {} END - ok(!$@); + ok(!$@); - eval { TestApp->setup_actions }; - like($@, qr/Invalid Args\Q$fail\E/, - "Bad Args$fail attribute makes action setup fail"); + eval { TestApp->setup_actions }; + like($@, qr/Invalid \Q${type}${fail}\E/, + "Bad ${type}${fail} attribute makes action setup fail"); + } } for my $ok ( @@ -35,12 +33,33 @@ for my $ok ( "('0')", "", ) { - eval <<"END"; - package TestApp::Controller::Action::Chained; - no warnings 'redefine'; - sub should_fail : Chained('/') Args$ok {} + for my $type (qw(Args CaptureArgs)) { + eval <<"END"; + package TestApp::Controller::Action::Chained; + no warnings 'redefine'; + sub should_fail : Chained('/') ${type}${ok} {} END - ok(!$@); - eval { TestApp->setup_actions }; - ok(!$@, "Args$ok works"); + ok(!$@); + eval { TestApp->setup_actions }; + ok(!$@, "${type}${ok} works"); + } } + +for my $first (qw(Args CaptureArgs)) { + for my $second (qw(Args CaptureArgs)) { + eval <<"END"; + package TestApp::Controller::Action::Chained; + no warnings 'redefine'; + sub should_fail :Chained('/') $first $second {} +END + ok(!$@); + eval { TestApp->setup_actions }; + my $msg = $first eq $second + ? "Multiple $first" + : "Combining Args and CaptureArgs"; + like($@, qr/$msg attributes not supported registering/, + "$first + $second attribute makes action setup fail"); + } +} + +done_testing();