In Catalyst::Test, don't mangle headers of non-HTML responses. RT#79043
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Request.pm
index 3d0c03a..b8d05b4 100644 (file)
@@ -23,13 +23,15 @@ has user => (is => 'rw');
 sub snippets        { shift->captures(@_) }
 
 has _read_position => (
-    init_arg => undef,
+    # FIXME: work around Moose bug RT#75367
+    # init_arg => undef,
     is => 'ro',
     writer => '_set_read_position',
     default => 0,
 );
 has _read_length => (
-    init_arg => undef,
+    # FIXME: work around Moose bug RT#75367
+    # init_arg => undef,
     is => 'ro',
     default => sub {
         my $self = shift;
@@ -139,7 +141,8 @@ has uploads => (
 has parameters => (
     is => 'rw',
     lazy => 1,
-    builder => 'prepare_parameters',
+    builder => '_build_parameters',
+    clearer => '_clear_parameters',
 );
 
 # TODO:
@@ -152,6 +155,14 @@ has parameters => (
 
 sub prepare_parameters {
     my ( $self ) = @_;
+    $self->_clear_parameters;
+    return $self->parameters;
+}
+
+
+
+sub _build_parameters {
+    my ( $self ) = @_;
     my $parameters = {};
     my $body_parameters = $self->body_parameters;
     my $query_parameters = $self->query_parameters;
@@ -218,7 +229,7 @@ sub prepare_body_parameters {
     my ( $self ) = @_;
 
     $self->prepare_body if ! $self->_has_body;
-    return unless $self->_body;
+    return {} unless $self->_body;
 
     return $self->_body->param;
 }
@@ -642,9 +653,8 @@ Shortcut for $req->headers->referer. Returns the referring page.
 Returns true or false, indicating whether the connection is secure
 (https). Note that the URI scheme (e.g., http vs. https) must be determined
 through heuristics, and therefore the reliability of $req->secure will depend
-on your server configuration. If you are serving secure pages on the standard
-SSL port (443) and/or setting the HTTPS environment variable, $req->secure
-should be valid.
+on your server configuration. If you are setting the HTTPS environment variable, 
+$req->secure should be valid.
 
 =head2 $req->captures
 
@@ -869,7 +879,8 @@ request method, hostname requested etc.
 Ensures that the body has been parsed, then builds the parameters, which are
 combined from those in the request and those in the body.
 
-This method is the builder for the 'parameters' attribute.
+If parameters have already been set will clear the parameters and build them again.
+
 
 =head2 meta