[Catalyst-commits] r10574 - in Catalyst-Runtime/5.80/trunk: . lib
lib/Catalyst/DispatchType t t/aggregate
t0m at dev.catalyst.perl.org
t0m at dev.catalyst.perl.org
Wed Jun 17 16:03:52 GMT 2009
Author: t0m
Date: 2009-06-17 16:03:51 +0000 (Wed, 17 Jun 2009)
New Revision: 10574
Modified:
Catalyst-Runtime/5.80/trunk/Changes
Catalyst-Runtime/5.80/trunk/lib/Catalyst.pm
Catalyst-Runtime/5.80/trunk/lib/Catalyst/DispatchType/Chained.pm
Catalyst-Runtime/5.80/trunk/lib/Catalyst/DispatchType/Regex.pm
Catalyst-Runtime/5.80/trunk/t/aggregate/unit_core_uri_for_action.t
Catalyst-Runtime/5.80/trunk/t/unit_core_uri_for.t
Log:
Back out 10498 and 10097
Modified: Catalyst-Runtime/5.80/trunk/Changes
===================================================================
--- Catalyst-Runtime/5.80/trunk/Changes 2009-06-17 11:36:14 UTC (rev 10573)
+++ Catalyst-Runtime/5.80/trunk/Changes 2009-06-17 16:03:51 UTC (rev 10574)
@@ -1,7 +1,9 @@
# This file documents the revision history for Perl extension Catalyst.
Bug fixes:
- - Stop encoding plus signs in uri_for args
+ - Revert change to URL encode things passed into $c->uri_for
+ Args and CaptureArgs as this causes breakage to pre-existing
+ applications.
5.80005 2009-06-06 14:40:00
Modified: Catalyst-Runtime/5.80/trunk/lib/Catalyst/DispatchType/Chained.pm
===================================================================
--- Catalyst-Runtime/5.80/trunk/lib/Catalyst/DispatchType/Chained.pm 2009-06-17 11:36:14 UTC (rev 10573)
+++ Catalyst-Runtime/5.80/trunk/lib/Catalyst/DispatchType/Chained.pm 2009-06-17 16:03:51 UTC (rev 10574)
@@ -353,9 +353,7 @@
if (my $cap = $curr->attributes->{CaptureArgs}) {
return undef unless @captures >= $cap->[0]; # not enough captures
if ($cap->[0]) {
- unshift(@parts,
- map { s/([^A-Za-z0-9\-_.!~*'()])/$URI::Escape::escapes{$1}/go; $_; }
- splice(@captures, -$cap->[0]));
+ unshift(@parts, splice(@captures, -$cap->[0]));
}
}
if (my $pp = $curr->attributes->{PartPath}) {
Modified: Catalyst-Runtime/5.80/trunk/lib/Catalyst/DispatchType/Regex.pm
===================================================================
--- Catalyst-Runtime/5.80/trunk/lib/Catalyst/DispatchType/Regex.pm 2009-06-17 11:36:14 UTC (rev 10573)
+++ Catalyst-Runtime/5.80/trunk/lib/Catalyst/DispatchType/Regex.pm 2009-06-17 16:03:51 UTC (rev 10574)
@@ -148,7 +148,7 @@
$re =~ s/^\^//;
$re =~ s/\$$//;
my $final = '/';
- my @captures = map { s/([^A-Za-z0-9\-_.!~*'()])/$URI::Escape::escapes{$1}/go; $_; } @$captures;
+ my @captures = @$captures;
while (my ($front, $rest) = split(/\(/, $re, 2)) {
last unless defined $rest;
($rest, $re) =
Modified: Catalyst-Runtime/5.80/trunk/lib/Catalyst.pm
===================================================================
--- Catalyst-Runtime/5.80/trunk/lib/Catalyst.pm 2009-06-17 11:36:14 UTC (rev 10573)
+++ Catalyst-Runtime/5.80/trunk/lib/Catalyst.pm 2009-06-17 16:03:51 UTC (rev 10574)
@@ -1199,7 +1199,7 @@
( scalar @args && ref $args[$#args] eq 'HASH' ? pop @args : {} );
carp "uri_for called with undef argument" if grep { ! defined $_ } @args;
- s/([^A-Za-z0-9\-_.!~*'()+])/$URI::Escape::escapes{$1}/go for @args;
+ s/([^$URI::uric])/$URI::Escape::escapes{$1}/go for @args;
unshift(@args, $path);
@@ -1233,7 +1233,7 @@
$_ = "$_";
utf8::encode( $_ ) if utf8::is_utf8($_);
# using the URI::Escape pattern here so utf8 chars survive
- s/([^A-Za-z0-9\-_.!~*'()])/$URI::Escape::escapes{$1}/go;
+ s/([^A-Za-z0-9\-_.!~*'() ])/$URI::Escape::escapes{$1}/go;
s/ /+/g;
"${key}=$_"; } ( ref $val eq 'ARRAY' ? @$val : $val ));
} @keys);
Modified: Catalyst-Runtime/5.80/trunk/t/aggregate/unit_core_uri_for_action.t
===================================================================
--- Catalyst-Runtime/5.80/trunk/t/aggregate/unit_core_uri_for_action.t 2009-06-17 11:36:14 UTC (rev 10573)
+++ Catalyst-Runtime/5.80/trunk/t/aggregate/unit_core_uri_for_action.t 2009-06-17 16:03:51 UTC (rev 10574)
@@ -8,7 +8,7 @@
use Test::More;
-plan tests => 33;
+plan tests => 30;
use_ok('TestApp');
@@ -54,10 +54,6 @@
"/action/regexp/foo/123",
"Regex action interpolates captures correctly");
-is($dispatcher->uri_for_action($regex_action, [ 'foo/bar', 123 ]),
- "/action/regexp/foo%2Fbar/123",
- "Regex action interpolates captures correctly and url encodes /");
-
#
# Index Action
#
@@ -109,10 +105,6 @@
"http://127.0.0.1/foo/action/relative/relative/one/two?q=1",
"uri_for correct for path action with args and query");
-is($context->uri_for($path_action, qw|one/quux two|),
- "http://127.0.0.1/foo/action/relative/relative/one%2Fquux/two",
- "uri_for correctly url encoded for path action with args containing /");
-
ok(!defined($context->uri_for($path_action, [ 'blah' ])),
"no URI returned by uri_for for Path action with snippets");
@@ -169,13 +161,9 @@
'uri_for_action returns uri with empty arg on undef last argument' );
is( $context->uri_for_action($action_needs_two, [ 'foo' , 'bar/baz' ], (3,4)),
- 'http://127.0.0.1/foo/chained/foo2/foo/bar%2Fbaz/end2/3/4',
- 'uri_for_action works correctly when CaptureArg contains /' );
+ 'http://127.0.0.1/foo/chained/foo2/foo/bar%2Fbaz/end2/3/',
+ 'uri_for_action returns uri with empty arg on undef last argument' );
- is( $context->uri_for_action($action_needs_two, [ 'foo' , 'bar' ], ('3/baz',4)),
- 'http://127.0.0.1/foo/chained/foo2/foo/bar/end2/3%2Fbaz/4',
- 'uri_for_action works correctly when Args contains /' );
-
my $complex_chained = '/action/chained/empty_chain_f';
is( $context->uri_for_action( $complex_chained, [23], (13), {q => 3} ),
'http://127.0.0.1/foo/chained/empty/23/13?q=3',
Modified: Catalyst-Runtime/5.80/trunk/t/unit_core_uri_for.t
===================================================================
--- Catalyst-Runtime/5.80/trunk/t/unit_core_uri_for.t 2009-06-17 11:36:14 UTC (rev 10573)
+++ Catalyst-Runtime/5.80/trunk/t/unit_core_uri_for.t 2009-06-17 16:03:51 UTC (rev 10574)
@@ -1,7 +1,7 @@
use strict;
use warnings;
-use Test::More tests => 17;
+use Test::More tests => 16;
use URI;
use_ok('Catalyst');
@@ -51,11 +51,6 @@
'http://127.0.0.1/foo/yada/bar/wibble%3F/with%20space', 'Space gets encoded'
);
-is(
- Catalyst::uri_for( $context, '/bar', 'with+plus', { 'also' => 'with+plus' })->as_string,
- 'http://127.0.0.1/foo/bar/with+plus?also=with%2Bplus',
- 'Plus is not encoded'
-);
# test with utf-8
is(
More information about the Catalyst-commits
mailing list