Move CGI.pm from lib to ext
[p5sagit/p5-mst-13.2.git] / ext / CGI / t / util-58.t
CommitLineData
ad6402bd 1# test CGI::Util::escape
2use Test::More tests => 4;
3use_ok("CGI::Util");
4
5# Byte strings should be escaped byte by byte:
6# 1) not a valid utf-8 sequence:
7my $uri = "pe\x{f8}\x{ed}\x{e8}ko.ogg";
8is(CGI::Util::escape($uri), "pe%F8%ED%E8ko.ogg", "Escape a Latin-2 string");
9
10# 2) is a valid utf-8 sequence, but not an UTF-8-flagged string
11# This happens often: people write utf-8 strings to source, but forget
12# to tell perl about it by "use utf8;"--this is obviously wrong, but we
13# have to handle it gracefully, for compatibility with GCI.pm under
14# perl-5.8.x
8f3ccfa2 15#
ad6402bd 16$uri = "pe\x{c5}\x{99}\x{c3}\x{ad}\x{c4}\x{8d}ko.ogg";
17is(CGI::Util::escape($uri), "pe%C5%99%C3%AD%C4%8Dko.ogg",
18 "Escape an utf-8 byte string");
8f3ccfa2 19
ad6402bd 20SKIP:
21{
22 # This tests CGI::Util::escape() when fed with UTF-8-flagged string
23 # -- dankogai
24 skip("Unicode strings not available in $]", 1) if ($] < 5.008);
25 $uri = "\x{5c0f}\x{98fc} \x{5f3e}.txt"; # KOGAI, Dan, in Kanji
26 is(CGI::Util::escape($uri), "%E5%B0%8F%E9%A3%BC%20%E5%BC%BE.txt",
27 "Escape string with UTF-8 flag");
cf0d1c66 28}
8f3ccfa2 29__END__