Catalyst-Runtime
view release on metacpan or search on metacpan
t/utf_incoming.t view on Meta::CPAN
use Catalyst::Test 'MyApp';
{
my $res = request "/root/â¥";
is $res->code, 200, 'OK';
is decode_utf8($res->content), '<p>This is path-heart action â¥</p>', 'correct body';
is $res->content_length, 36, 'correct length';
is $res->content_charset, 'UTF-8';
}
{
my $res = request "/root/aâ¥/â¥";
is $res->code, 200, 'OK';
is decode_utf8($res->content), '<p>This is path-heart-arg action â¥</p>', 'correct body';
is $res->content_length, 40, 'correct length';
is $res->content_charset, 'UTF-8';
}
{
my $res = request "/root/^";
is $res->code, 200, 'OK';
is decode_utf8($res->content), '<p>This is path-hat action ^</p>', 'correct body';
is $res->content_length, 32, 'correct length';
is $res->content_charset, 'UTF-8';
}
{
my $res = request "/base/â¥";
is $res->code, 200, 'OK';
is decode_utf8($res->content), '<p>This is base-link action â¥</p>', 'correct body';
is $res->content_length, 35, 'correct length';
is $res->content_charset, 'UTF-8';
}
{
my ($res, $c) = ctx_request POST "/base/â¥?â¥=â¥&â¥=â¥â¥", [a=>1, b=>'', 'â¥'=>'â¥', 'â¥'=>'â¥â¥'];
is $res->code, 200, 'OK';
is decode_utf8($res->content), '<p>This is base-link action â¥</p>', 'correct body';
is $res->content_length, 35, 'correct length';
is $c->req->parameters->{'â¥'}[0], 'â¥';
is $c->req->query_parameters->{'â¥'}[0], 'â¥';
is $c->req->body_parameters->{'â¥'}[0], 'â¥';
is $c->req->parameters->{'â¥'}[0], 'â¥';
is $c->req->parameters->{a}, 1;
is $c->req->body_parameters->{a}, 1;
is $res->content_charset, 'UTF-8';
}
{
my ($res, $c) = ctx_request GET "/base/â¥?â¥â¥â¥";
is $res->code, 200, 'OK';
is decode_utf8($res->content), '<p>This is base-link action â¥</p>', 'correct body';
is $res->content_length, 35, 'correct length';
is $c->req->query_keywords, 'â¥â¥â¥';
is $res->content_charset, 'UTF-8';
}
{
my $res = request "/base/â¥/â¥";
is $res->code, 200, 'OK';
is decode_utf8($res->content), '<p>This is base-link action ⥠â¥</p>', 'correct body';
is $res->content_length, 39, 'correct length';
is $res->content_charset, 'UTF-8';
}
{
my $res = request "/base/â¥/â¥/â¥/â¥";
is decode_utf8($res->content), '<p>This is base-link action ⥠â¥</p>', 'correct body';
is $res->content_length, 39, 'correct length';
is $res->content_charset, 'UTF-8';
}
{
my ($res, $c) = ctx_request POST "/base/â¥/â¥/â¥/â¥?â¥=â¥â¥", [a=>1, b=>'2', 'â¥'=>'â¥â¥'];
## Make sure that the urls we generate work the same
my $uri_for1 = $c->uri_for($c->controller('Root')->action_for('argend'), ['â¥'], 'â¥', {'â¥'=>'â¥â¥'});
my $uri_for2 = $c->uri_for($c->controller('Root')->action_for('argend'), ['â¥', 'â¥'], {'â¥'=>'â¥â¥'});
my $uri = $c->req->uri;
is "$uri_for1", "$uri_for2";
is "$uri", "$uri_for1";
{
my ($res, $c) = ctx_request POST "$uri_for1", [a=>1, b=>'2', 'â¥'=>'â¥â¥'];
is $c->req->query_parameters->{'â¥'}, 'â¥â¥';
is $c->req->body_parameters->{'â¥'}, 'â¥â¥';
is $c->req->parameters->{'â¥'}[0], 'â¥â¥'; #combined with query and body
is $c->req->args->[0], 'â¥';
is length($c->req->parameters->{'â¥'}[0]), 2;
is length($c->req->query_parameters->{'â¥'}), 2;
is length($c->req->body_parameters->{'â¥'}), 2;
is length($c->req->args->[0]), 1;
is $res->content_charset, 'UTF-8';
}
}
{
my ($res, $c) = ctx_request "/root/uri_for";
my $url = $c->uri_for($c->controller('Root')->action_for('argend'), ['â¥'], 'â¥#Xâ¥X', {'â¥'=>'â¥â¥'});
is $res->code, 200, 'OK';
is decode_utf8($res->content), "$url", 'correct body'; #should do nothing
is $res->content, "$url", 'correct body';
is $res->content_length, 104, 'correct length';
is $res->content_charset, 'UTF-8';
{
my $url = $c->uri_for($c->controller->action_for('heart_with_arg'), 'â¥');
is "$url", 'http://localhost/root/a%E2%99%A5/%E2%99%A5', "correct $url";
}
( run in 2.981 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )