summaryrefslogtreecommitdiffstats
path: root/t/response-redirect.t
diff options
context:
space:
mode:
Diffstat (limited to 't/response-redirect.t')
-rw-r--r--t/response-redirect.t32
1 files changed, 32 insertions, 0 deletions
diff --git a/t/response-redirect.t b/t/response-redirect.t
new file mode 100644
index 0000000..5e6f356
--- /dev/null
+++ b/t/response-redirect.t
@@ -0,0 +1,32 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+
+use Web::Response;
+
+{
+ my $res = Web::Response->new;
+ $res->redirect('http://www.google.com/');
+ is $res->location, 'http://www.google.com/';
+ is $res->status, 302;
+
+ is_deeply $res->finalize, [ 302, [ 'Location' => 'http://www.google.com/' ], [] ];
+}
+
+{
+ my $res = Web::Response->new;
+ $res->redirect('http://www.google.com/', 301);
+ is_deeply $res->finalize, [ 301, [ 'Location' => 'http://www.google.com/' ], [] ];
+}
+
+{
+ my $uri_invalid = "http://www.google.com/\r\nX-Injection: true\r\n\r\nHello World";
+
+ my $res = Web::Response->new;
+ $res->redirect($uri_invalid, 301);
+ my $psgi_res = $res->finalize;
+ ok $psgi_res->[1][1] !~ /\n/;
+}
+
+done_testing;