X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=t%2Fclass_traits_CAR_bug.t;fp=t%2Fclass_traits_CAR_bug.t;h=d160e7311e113ab3c4a30a6341ca1f9dc2341804;hp=0000000000000000000000000000000000000000;hb=0f0fedb2b03e13e16636b61fd5e82b6563d2ee9c;hpb=3785afa685ed291cff7e041a73344749c52d2d22 diff --git a/t/class_traits_CAR_bug.t b/t/class_traits_CAR_bug.t new file mode 100644 index 0000000..d160e73 --- /dev/null +++ b/t/class_traits_CAR_bug.t @@ -0,0 +1,70 @@ +use strict; +use warnings; +use Test::More; +use Class::MOP; + +BEGIN { + use Test::More; + eval "use Catalyst::Action::REST; 1" || do { + plan skip_all => "Trouble loading Catalyst::Action::REST => $@"; + }; +} + +BEGIN { + package TestRole; + $INC{'TestRole'} = __FILE__; + use Moose::Role; + + sub a { 'a' } + sub b { 'b' } + + package Catalyst::TraitFor::Request::Foo; + $INC{'Catalyst/TraitFor/Request/Foo.pm'} = __FILE__; + use Moose::Role; + + sub c { 'c' } + + package TestApp::TraitFor::Request::Bar; + $INC{'TestApp/TraitFor/Request/Bar.pm'} = __FILE__; + use Moose::Role; + + sub d { 'd' } + + package TestApp::Controller::Root; + $INC{'TestApp/Controller/Root.pm'} = __FILE__; + + use Moose; + use MooseX::MethodAttributes; + + +} + +{ + package TestApp; + $INC{'TestApp.pm'} = __FILE__; + + use Catalyst; + + __PACKAGE__->request_class_traits([qw/TestRole Foo Bar/]); + __PACKAGE__->setup; +} + + +foreach my $class_prefix (qw/request/) { + my $method = 'composed_' .$class_prefix. '_class'; + ok( + Class::MOP::class_of(TestApp->$method)->does_role('TestRole'), + "$method does TestRole", + ); +} + +use Catalyst::Test 'TestApp'; + +my ($res, $c) = ctx_request '/'; + +is $c->req->a, 'a'; +is $c->req->b, 'b'; +is $c->req->c, 'c'; +is $c->req->d, 'd'; + +done_testing;