Switched to Module::Install
[catagits/Catalyst-Runtime.git] / t / lib / Catalyst / Plugin / Test / Errors.pm
diff --git a/t/lib/Catalyst/Plugin/Test/Errors.pm b/t/lib/Catalyst/Plugin/Test/Errors.pm
new file mode 100644 (file)
index 0000000..4dc0d57
--- /dev/null
@@ -0,0 +1,29 @@
+package Catalyst::Plugin::Test::Errors;
+
+use strict;
+
+sub error {
+    my $c = shift;
+
+    unless ( $_[0] ) {
+        return $c->NEXT::error(@_);
+    }
+
+    if ( $_[0] =~ /^(Unknown resource|No default action defined)/ ) {
+        $c->response->status(404);
+    }
+    
+    if ( $_[0] =~ /^Couldn\'t forward/ ) {
+        $c->response->status(404);
+    }    
+
+    if ( $_[0] =~ /^Caught exception/ ) {
+        $c->response->status(500);
+    }
+
+    $c->response->headers->push_header( 'X-Catalyst-Error' => $_[0] );
+
+    $c->NEXT::error(@_);
+}
+
+1;