[Catalyst-commits] r10583 - Catalyst-Runtime/5.80/trunk/t

zarquon at dev.catalyst.perl.org zarquon at dev.catalyst.perl.org
Thu Jun 18 10:47:36 GMT 2009


Author: zarquon
Date: 2009-06-18 10:47:36 +0000 (Thu, 18 Jun 2009)
New Revision: 10583

Added:
   Catalyst-Runtime/5.80/trunk/t/path_escape_bug.t
Log:
attempt to test for the infamous repeating path-uri-escape evil

Added: Catalyst-Runtime/5.80/trunk/t/path_escape_bug.t
===================================================================
--- Catalyst-Runtime/5.80/trunk/t/path_escape_bug.t	                        (rev 0)
+++ Catalyst-Runtime/5.80/trunk/t/path_escape_bug.t	2009-06-18 10:47:36 UTC (rev 10583)
@@ -0,0 +1,37 @@
+#!/usr/bin/env perl
+use warnings;
+use strict;
+use Test::More qw/no_plan/;
+
+{
+    package TestApp;
+    use parent qw/Catalyst/;
+    use parent qw/Catalyst::Controller/;
+    __PACKAGE__->setup();
+
+    sub thing :Path {
+        my ($self, $c, @path) = @_;
+        $c->res->body(join "/", @path);
+    }
+    sub another :Path('something') {
+        my ($self, $c) = @_;
+        $c->forward('thing');
+    }
+    sub thing_uri :Path('thing_uri') {
+        my ($self, $c, @path) = @_;
+        $c->res->body($c->uri_for(@path));
+    }
+}
+
+use_ok "Catalyst::Test", "TestApp";
+my $req_path = 'foo/bar/baz quoxx{fnord}';
+my $req = request("/$req_path");
+ok($req->is_success, 'request succeeds');
+is($req->content, $req_path, "returned path is identical to received path");
+$req = request("/something/$req_path");
+ok($req->is_success, 'request succeeds');
+is($req->content, $req_path, "returned path is identical to received path 2");
+$req = request("/thing_uri/$req_path");
+ok($req->is_success, 'request succeeds');
+is($req->content, "http://localhost/$req_path", "returned path is identical to received path 2");
+




More information about the Catalyst-commits mailing list