CGI-Lingua
view release on metacpan or search on metacpan
t/edge_cases.t view on Meta::CPAN
$l->language();
ok((grep { ref($_) ? $_->{warning} =~ /invalid/i : /invalid/i } @warnings),
'Header-injection payload with colon is rejected');
Test::Mockingbird::restore_all();
_block_network();
};
subtest 'HTTP_ACCEPT_LANGUAGE: Unicode content rejected by /a flag' => sub {
# The /a flag restricts \w, \d, \s to ASCII-only, blocking multi-byte
# Unicode that would otherwise match [A-Za-z0-9].
# Setting Unicode in %ENV produces a "Wide character in setenv" warning on
# some platforms; suppress it so the test is portable.
local %ENV = (REMOTE_ADDR => $IP{LOOPBACK});
{ local $SIG{__WARN__} = sub {};
$ENV{HTTP_ACCEPT_LANGUAGE} = "zh-\x{4e2d}\x{6587}" } # zh-䏿
my @warnings;
Test::Mockingbird::mock('CGI::Lingua', '_warn',
sub { push @warnings, $_[1] });
my $l = _obj([$LANG{EN}]);
$l->language();
( run in 0.509 second using v1.01-cache-2.11-cpan-f4a522933cf )