From: Wallace Reis Date: Mon, 9 Apr 2012 14:08:00 +0000 (+0000) Subject: Add failing test for utf8 redirection when URI.pm < 1.59 with Catalyst-5.9 X-Git-Tag: 0.58~10 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=705f22fa6179b21fdca4874648a162ecd31db3e2;p=catagits%2FTest-WWW-Mechanize-Catalyst.git Add failing test for utf8 redirection when URI.pm < 1.59 with Catalyst-5.9 --- diff --git a/Makefile.PL b/Makefile.PL index 23e13d8..0471ffb 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -19,6 +19,7 @@ test_requires 'Catalyst::Plugin::Session::State::Cookie' => '0'; test_requires 'Catalyst::Plugin::Session::Store::Dummy' => '0'; test_requires 'Test::Exception' => '0'; test_requires 'Test::More' => '0'; +test_requires 'Test::utf8' => '0'; if ($Module::Install::AUTHOR) { system('pod2text lib/Test/WWW/Mechanize/Catalyst.pm > README'); diff --git a/t/lib/Catty/Controller/Root.pm b/t/lib/Catty/Controller/Root.pm index c35798b..77a2825 100644 --- a/t/lib/Catty/Controller/Root.pm +++ b/t/lib/Catty/Controller/Root.pm @@ -7,6 +7,7 @@ use base qw/ Catalyst::Controller /; use Cwd; use MIME::Base64; use Encode (); +use utf8; __PACKAGE__->config( namespace => '' ); @@ -143,9 +144,9 @@ sub bad_content_encoding :Global { $c->res->body('foo'); } -sub redirect_to_utf8_upgraded_string { +sub redirect_to_utf8_upgraded_string : Global { my($self, $c) = @_; - my $where = $c->uri_for('hello')->stringify; + my $where = $c->uri_for('hello', 'müller')->as_string; utf8::upgrade($where); $c->res->redirect($where); } diff --git a/t/redirect.t b/t/redirect.t index cff9b16..34ee311 100644 --- a/t/redirect.t +++ b/t/redirect.t @@ -2,9 +2,12 @@ use strict; use warnings; use lib 'lib'; -use Test::More tests => 29; +use Test::More tests => 30; use lib 't/lib'; use Test::WWW::Mechanize::Catalyst 'Catty'; +use HTTP::Request::Common; +use URI; +use Test::utf8; my $root = "http://localhost"; @@ -34,6 +37,8 @@ like( $prev->header('Location'), '/hi$/', "to the right place" ); $m->get("$root/redirect_with_500"); is ($m->status, 500, "Redirect not followed on 500"); -$m->get_ok( "$root/redirect_to_utf8_upgraded_string", - "redirect using an upgraded utf8 string" ); - +my $req = GET "$root/redirect_to_utf8_upgraded_string"; +my $loc = $m->_do_catalyst_request($req)->header('Location'); +my $uri = URI->new_abs( $loc, $req->uri )->as_string; +is_sane_utf8($uri); +isnt_flagged_utf8($uri);