X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FTest.pm;h=1fd6a76a999cbb4a96a3cd4faa78fb391cd9c730;hp=e121b350293bc707ce6d05d9b2f15e389158828b;hb=dd4530ecdc4684838d9c0e9dc00adebb6100b022;hpb=e58865461d2d7c80b8136a4b853082cb8031975e diff --git a/lib/Catalyst/Test.pm b/lib/Catalyst/Test.pm index e121b35..1fd6a76 100644 --- a/lib/Catalyst/Test.pm +++ b/lib/Catalyst/Test.pm @@ -11,6 +11,7 @@ use Class::Load qw(load_class is_class_loaded); use Sub::Exporter; use Moose::Util 'find_meta'; use Carp 'croak', 'carp'; +use Ref::Util qw(is_plain_coderef is_plain_hashref); sub _build_request_export { my ($self, $args) = @_; @@ -153,7 +154,7 @@ say: use Catalyst::Test (); # If you don't want to import a test app right now. or say: use Catalyst::Test 'MyApp'; # If you do want to import a test app.\n\n}) unless $class; $import->($self, '-all' => { class => $class }); - $opts = {} unless ref $opts eq 'HASH'; + $opts = {} unless is_plain_hashref($opts); $default_host = $opts->{default_host} if exists $opts->{default_host}; return 1; } @@ -290,7 +291,7 @@ sub _local_request { my $class = shift; return _request({ - app => ref($class) eq "CODE" ? $class : $class->_finalized_psgi_app, + app => is_plain_coderef($class) ? $class : $class->_finalized_psgi_app, mangle_response => sub { my ($resp) = @_; @@ -405,7 +406,7 @@ sub _customize_request { my $request = shift; my $extra_env = shift; my $opts = pop(@_) || {}; - $opts = {} unless ref($opts) eq 'HASH'; + $opts = {} unless is_plain_hashref($opts); if ( my $host = exists $opts->{host} ? $opts->{host} : $default_host ) { $request->header( 'Host' => $host ); }