Commit | Line | Data |
49faa307 |
1 | package TestApp; |
2 | |
e05c5e3c |
3 | use Catalyst qw[-Engine=Test]; |
49faa307 |
4 | |
9113e270 |
5 | sub echo : Global { |
6 | my ( $self, $c ) = @_; |
7 | |
8 | for my $field ( $c->req->headers->header_field_names ) { |
9 | my $header = ( $field =~ /^X-/ ) ? $field : "X-$field"; |
10 | $c->res->headers->header( |
11 | $header => $c->req->headers->header($field) ); |
49faa307 |
12 | } |
9113e270 |
13 | |
14 | $c->res->headers->content_type('text/plain'); |
15 | $c->res->output('ok'); |
16 | } |
17 | |
18 | __PACKAGE__->setup; |
49faa307 |
19 | |
20 | package main; |
21 | |
22 | use Test::More tests => 5; |
23 | use Catalyst::Test 'TestApp'; |
24 | use HTTP::Request::Common; |
25 | |
26 | my $request = POST( |
27 | 'http://localhost/echo', |
28 | 'X-Whats-Cool' => 'Catalyst', |
29 | 'Content-Type' => 'form-data', |
30 | 'Content' => [ |
31 | catalyst => 'Rocks!', |
32 | file => [$0], |
33 | ] |
34 | ); |
35 | |
36 | ok( my $response = request($request) ); |
37 | ok( $response->content_type eq 'text/plain' ); |
38 | ok( $response->headers->header('X-Content-Type') =~ /^multipart\/form-data/ ); |
39 | ok( $response->headers->header('X-Content-Length') == |
40 | $request->content_length ); |
41 | ok( $response->headers->header('X-Whats-Cool') eq 'Catalyst' ); |