+ Fix infinite recursion in tests under Catalyst 5.90040
+
Mon 22 Apr 2013 14:36:53 BST - Release 1.10
Use YAML rather than JSON in basic tests
--- /dev/null
+use strict;
+use warnings;
+use Test::More;
+use FindBin;
+use Moose ();
+use lib ( "$FindBin::Bin/lib" );
+
+my $test = 'Test::Catalyst::Action::REST';
+
+my $meta = Moose::Meta::Class->create_anon_class(
+ superclasses => ['Catalyst::Request'],
+);
+$meta->add_method('__random_method' => sub { 42 });
+
+$ENV{CAR_TEST_REQUEST_CLASS} = $meta->name;
+
+use_ok $test;
+ok($test->request_class->does('Catalyst::TraitFor::Request::REST'),
+ 'Request class does Catalyst::TraitFor::Request::REST');
+isnt $test->request_class, $meta->name, 'Different request class';
+ok $test->request_class->can('__random_method'), 'Is right class';
+ok $test->request_class->can('data'), 'Also smells like REST subclass';
+
+done_testing;
--- /dev/null
+use strict;
+use warnings;
+use Test::More;
+use FindBin;
+use Moose ();
+use lib ( "$FindBin::Bin/lib" );
+
+my $test = 'Test::Catalyst::Action::REST';
+
+my $meta = Moose::Meta::Class->create_anon_class(
+ # The test app has ForBrowsers actions, so we need that to not have
+ # the request class replaced
+ superclasses => ['Catalyst::Request::REST::ForBrowsers'],
+);
+
+$ENV{CAR_TEST_REQUEST_CLASS} = $meta->name;
+
+use_ok $test;
+ok($test->request_class->does('Catalyst::TraitFor::Request::REST'),
+ 'Request class does Catalyst::TraitFor::Request::REST');
+is $test->request_class, $meta->name, 'Request class kept';
+ok $test->request_class->can('data'), 'Also smells like REST subclass';
+
+done_testing;
}
}
-{
- local %ENV=%ENV;
- $ENV{CATALYST_DEBUG} = 0;
- my $test = 'Test::Catalyst::Action::REST';
- use_ok $test;
- ok($test->request_class->does('Catalyst::TraitFor::Request::REST'),
- 'Request does Catalyst::TraitFor::Request::REST');
-
- my $meta = Moose::Meta::Class->create_anon_class(
- superclasses => ['Catalyst::Request'],
- );
- $meta->add_method('__random_method' => sub { 42 });
-
- $test->request_class($meta->name);
- # FIXME - setup_finished(0) is evil!
- eval { $test->setup_finished(0); $test->setup };
- ok !$@, 'Can setup again';
- isnt $test->request_class, $meta->name, 'Different request class';
- ok $test->request_class->can('__random_method'), 'Is right class';
- ok $test->request_class->can('data'), 'Also smells like REST subclass';
-
- {
- package My::Request;
- use base 'Catalyst::Request::REST';
- }
- $test->request_class('My::Request');
- eval { $test->setup_finished(0); $test->setup };
- is $@, '', 'no error from Request::REST subclass';
-}
-
done_testing;
package MockContext;
content_type_stash_key => 'serialize_content_type',
},
);
+__PACKAGE__->request_class($ENV{CAR_TEST_REQUEST_CLASS})
+ if $ENV{CAR_TEST_REQUEST_CLASS};
__PACKAGE__->setup;
__PACKAGE__->log( Test::Catalyst::Log->new )
unless __PACKAGE__->debug;