-package TestApp::Controller::Engine::Request::URI;\r
-\r
-use strict;\r
-use base 'Catalyst::Base';\r
-\r
-sub default : Private {\r
- my ( $self, $c ) = @_;\r
- \r
- $c->forward('TestApp::View::Dump::Request');\r
-}\r
-\r
-sub change_path : Local {\r
- my ( $self, $c ) = @_;\r
- \r
- # change the path\r
- $c->req->path( '/my/app/lives/here' );\r
- \r
- $c->forward('TestApp::View::Dump::Request');\r
-}\r
-\r
-sub change_base : Local {\r
- my ( $self, $c ) = @_;\r
- \r
- # change the base and uri paths\r
- $c->req->base->path( '/new/location' );\r
- $c->req->uri->path( '/new/location/engine/request/uri/change_base' );\r
- \r
- $c->forward('TestApp::View::Dump::Request');\r
-}\r
-\r
-sub uri_with : Local {\r
- my ( $self, $c ) = @_;\r
-\r
- # change the current uri\r
- my $uri = $c->req->uri_with( { b => 1 } );\r
- my %query = $uri->query_form;\r
- \r
- $c->res->header( 'X-Catalyst-Param-a' => $query{ a } );\r
- $c->res->header( 'X-Catalyst-Param-b' => $query{ b } );\r
- \r
- $c->forward('TestApp::View::Dump::Request');\r
-}\r
-\r
-sub uri_with_object : Local {\r
- my ( $self, $c ) = @_;\r
-\r
- my $uri = $c->req->uri_with( { a => $c->req->base } );\r
- my %query = $uri->query_form;\r
- \r
- $c->res->header( 'X-Catalyst-Param-a' => $query{ a } );\r
- \r
- $c->forward('TestApp::View::Dump::Request');\r
-}\r
-\r
-sub uri_with_utf8 : Local {\r
- my ( $self, $c ) = @_;\r
-\r
- # change the current uri\r
- my $uri = $c->req->uri_with( { unicode => "\x{2620}" } );\r
- \r
- $c->res->header( 'X-Catalyst-uri-with' => "$uri" );\r
- \r
- $c->forward('TestApp::View::Dump::Request');\r
-}\r
-\r
-1;\r
+package TestApp::Controller::Engine::Request::URI;
+
+use strict;
+use base 'Catalyst::Base';
+
+sub default : Private {
+ my ( $self, $c ) = @_;
+
+ $c->forward('TestApp::View::Dump::Request');
+}
+
+sub change_path : Local {
+ my ( $self, $c ) = @_;
+
+ # change the path
+ $c->req->path( '/my/app/lives/here' );
+
+ $c->forward('TestApp::View::Dump::Request');
+}
+
+sub change_base : Local {
+ my ( $self, $c ) = @_;
+
+ # change the base and uri paths
+ $c->req->base->path( '/new/location' );
+ $c->req->uri->path( '/new/location/engine/request/uri/change_base' );
+
+ $c->forward('TestApp::View::Dump::Request');
+}
+
+sub uri_with : Local {
+ my ( $self, $c ) = @_;
+
+ # change the current uri
+ my $uri = $c->req->uri_with( { b => 1 } );
+ my %query = $uri->query_form;
+
+ $c->res->header( 'X-Catalyst-Param-a' => $query{ a } );
+ $c->res->header( 'X-Catalyst-Param-b' => $query{ b } );
+
+ $c->forward('TestApp::View::Dump::Request');
+}
+
+sub uri_with_object : Local {
+ my ( $self, $c ) = @_;
+
+ my $uri = $c->req->uri_with( { a => $c->req->base } );
+ my %query = $uri->query_form;
+
+ $c->res->header( 'X-Catalyst-Param-a' => $query{ a } );
+
+ $c->forward('TestApp::View::Dump::Request');
+}
+
+sub uri_with_utf8 : Local {
+ my ( $self, $c ) = @_;
+
+ # change the current uri
+ my $uri = $c->req->uri_with( { unicode => "\x{2620}" } );
+
+ $c->res->header( 'X-Catalyst-uri-with' => "$uri" );
+
+ $c->forward('TestApp::View::Dump::Request');
+}
+
+sub uri_with_undef : Local {
+ my ( $self, $c ) = @_;
+
+ my $warnings = 0;
+ local $SIG{__WARN__} = sub { $warnings++ };
+
+ # change the current uri
+ my $uri = $c->req->uri_with( { foo => undef } );
+
+ $c->res->header( 'X-Catalyst-warnings' => $warnings );
+
+ $c->forward('TestApp::View::Dump::Request');
+}
+
+sub uri_with_undef_only : Local {
+ my ( $self, $c ) = @_;
+
+ my $uri = $c->req->uri_with( { a => undef } );
+
+ $c->res->header( 'X-Catalyst-uri-with' => "$uri" );
+ $c->forward('TestApp::View::Dump::Request');
+}
+
+sub uri_with_undef_ignore : Local {
+ my ( $self, $c ) = @_;
+
+ my $uri = $c->req->uri_with( { a => 1, b => undef } );
+
+ my %query = $uri->query_form;
+ $c->res->header( 'X-Catalyst-uri-with' => "$uri" );
+ $c->res->header( 'X-Catalyst-Param-a' => $query{ a } );
+ $c->res->header( 'X-Catalyst-Param-b' => $query{ b } );
+ $c->res->header( 'X-Catalyst-Param-c' => $query{ c } );
+ $c->forward('TestApp::View::Dump::Request');
+}
+
+1;