use strict;
use warnings;
-use Test::More tests => 24;
+use Test::More;
use FindBin;
-use lib ( "$FindBin::Bin/../lib" );
+use lib ( "$FindBin::Bin/../lib", "$FindBin::Bin/../t/lib" );
use Catalyst::Request::REST;
use HTTP::Headers;
$request->headers( HTTP::Headers->new );
$request->parameters( {} );
$request->method('GET');
- $request->content_type('text/x-json');
+ $request->content_type('application/json');
$request->headers->header(
'Accept' =>
# From Firefox 2.0 when it requests an html page
);
is_deeply( $request->accepted_content_types,
- [ qw( text/x-json
+ [ qw( application/json
text/xml application/xml application/xhtml+xml
image/png
text/html
'each type appears only once' );
}
+{
+ local %ENV=%ENV;
+ $ENV{CATALYST_DEBUG} = 0;
+ my $test = 'Test::Catalyst::Action::REST';
+ use_ok $test;
+ is($test->request_class, 'Catalyst::Request::REST',
+ 'Request::REST took over for Request');
+
+ 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;
sub prepare_body { }