added Test::Pod support
[catagits/Catalyst-Runtime.git] / t / 16post.t
diff --git a/t/16post.t b/t/16post.t
new file mode 100644 (file)
index 0000000..45abbd3
--- /dev/null
@@ -0,0 +1,41 @@
+package TestApp;
+
+use Catalyst qw[-Engine=Test];
+
+__PACKAGE__->action(
+    echo => sub {
+        my ( $self, $c ) = @_;
+
+        for my $field ( $c->req->headers->header_field_names ) {
+            my $header = ( $field =~ /^X-/ ) ? $field : "X-$field";
+            $c->res->headers->header(
+                $header => $c->req->headers->header($field) );
+        }
+
+        $c->res->headers->content_type('text/plain');
+        $c->res->output('ok');
+    }
+);
+
+package main;
+
+use Test::More tests => 5;
+use Catalyst::Test 'TestApp';
+use HTTP::Request::Common;
+
+my $request = POST(
+    'http://localhost/echo',
+    'X-Whats-Cool' => 'Catalyst',
+    'Content-Type' => 'form-data',
+    'Content'      => [
+        catalyst => 'Rocks!',
+        file     => [$0],
+    ]
+);
+
+ok( my $response = request($request) );
+ok( $response->content_type eq 'text/plain' );
+ok( $response->headers->header('X-Content-Type') =~ /^multipart\/form-data/ );
+ok( $response->headers->header('X-Content-Length') ==
+      $request->content_length );
+ok( $response->headers->header('X-Whats-Cool') eq 'Catalyst' );