--- /dev/null
+#!perl
+
+use strict;
+use warnings;
+use lib 't/lib';
+
+use Test::More;
+
+plan tests => 16;
+
+use Catalyst::Test 'TestApp';
+
+for my $fail (
+ "(' ')",
+ "('')",
+ "('1.23')",
+) {
+
+ eval <<"END";
+ package TestApp::Controller::Action::Chained;
+ no warnings 'redefine';
+ sub should_fail : Chained('/') Args$fail {}
+END
+ ok(!$@);
+
+ eval { TestApp->setup_actions };
+ like($@, qr/Invalid Args\Q$fail\E/,
+ "Bad Args$fail attribute makes action setup fail");
+}
+
+for my $ok (
+ "()",
+ "(0)",
+ "(1)",
+ "('0')",
+ "",
+) {
+ eval <<"END";
+ package TestApp::Controller::Action::Chained;
+ no warnings 'redefine';
+ sub should_fail : Chained('/') Args$ok {}
+END
+ ok(!$@);
+ eval { TestApp->setup_actions };
+ ok(!$@, "Args$ok works");
+}