claim a version for release
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Test.pm
index ef3def5..fbc8ada 100644 (file)
@@ -209,8 +209,8 @@ functions take either a URI or an L<HTTP::Request> object.
 
 =head1 INLINE TESTS WILL NO LONGER WORK
 
-While it used to be possible to inline a whole testapp into a C<.t> file for a
-distribution, this will no longer work.
+While it used to be possible to inline a whole test app into a C<.t> file for
+a distribution, this will no longer work.
 
 The convention is to place your L<Catalyst> test apps into C<t/lib> in your
 distribution. E.g.: C<t/lib/TestApp.pm>, C<t/lib/TestApp/Controller/Root.pm>,
@@ -295,6 +295,11 @@ sub _local_request {
 
             # HTML head parsing based on LWP::UserAgent
             #
+            # This is because if you make a remote request with LWP, then the
+            # <BASE HREF="..."> from the returned HTML document will be used
+            # to fill in $res->base, as documented in HTTP::Response. We need
+            # to support this in local test requests so that they work 'the same'.
+            #
             # This is not just horrible and possibly broken, but also really
             # doesn't belong here. Whoever wants this should be working on
             # getting it into Plack::Test, or make a middleware out of it, or
@@ -311,6 +316,10 @@ sub _local_request {
             for my $f ( $h->header_field_names ) {
                 $resp->init_header( $f, [ $h->header($f) ] );
             }
+            # Another horrible hack to make the response headers have a
+            # 'status' field. This is for back-compat, but you should
+            # call $resp->code instead!
+            $resp->init_header('status', [ $resp->code ]);
         },
     }, @_);
 }