require 5;
use Test;
# Time-stamp: "2004-07-01 14:33:50 ADT"
BEGIN { plan tests => 20; }
use I18N::LangTags::Detect 1.01;
print "# Hi there...\n";
ok 1;
print "# Using I18N::LangTags::Detect v$I18N::LangTags::Detect::VERSION\n";
print "# Make sure we can assign to ENV entries\n",
"# (Otherwise we can't run the subsequent tests)...\n";
$ENV{'MYORP'} = 'Zing'; ok $ENV{'MYORP'}, 'Zing';
$ENV{'SWUZ'} = 'KLORTHO HOOBOY'; ok $ENV{'SWUZ'}, 'KLORTHO HOOBOY';
delete $ENV{'MYORP'};
delete $ENV{'SWUZ'};
sub j { "[" . join(' ', map "\"$_\"", @_) . "]" ;}
sub show {
print "# (Seeing {", join(' ',
map(qq{<$_>}, @_)), "} at line ", (caller)[2], ")\n";
printenv();
return $_[0] || '';
}
sub printenv {
print "# ENV:\n";
foreach my $k (sort keys %ENV) {
my $p = $ENV{$k}; $p =~ s/\n/\n#/g;
print "# [$k] = [$p]\n"; }
print "# [end of ENV]\n#\n";
}
$ENV{'IGNORE_WIN32_LOCALE'} = 1; # a hack, just for testing's sake.
print "# Test LANGUAGE...\n";
$ENV{'REQUEST_METHOD'} = '';
$ENV{'LANGUAGE'} = 'Eu-MT';
$ENV{'LC_ALL'} = '';
$ENV{'LC_MESSAGES'} = '';
$ENV{'LANG'} = '';
ok show( scalar I18N::LangTags::Detect::detect()), "eu-mt";
ok show( j I18N::LangTags::Detect::detect()), q{["eu-mt"]};
print "# Test LC_ALL...\n";
$ENV{'REQUEST_METHOD'} = '';
$ENV{'LANGUAGE'} = '';
$ENV{'LC_ALL'} = 'Eu-MT';
$ENV{'LC_MESSAGES'} = '';
$ENV{'LANG'} = '';
ok show( scalar I18N::LangTags::Detect::detect()), "eu-mt";
ok show( j I18N::LangTags::Detect::detect()), q{["eu-mt"]};
print "# Test LC_MESSAGES...\n";
$ENV{'REQUEST_METHOD'} = '';
$ENV{'LANGUAGE'} = '';
$ENV{'LC_ALL'} = '';
$ENV{'LC_MESSAGES'} = 'Eu-MT';
$ENV{'LANG'} = '';
ok show( scalar I18N::LangTags::Detect::detect()), "eu-mt";
ok show( j I18N::LangTags::Detect::detect()), q{["eu-mt"]};
print "# Test LANG...\n";
$ENV{'REQUEST_METHOD'} = '';
$ENV{'LANGUAGE'} = '';
$ENV{'LC_ALL'} = '';
$ENV{'LC_MESSAGES'} = '';
$ENV{'LANG'} = 'Eu_MT';
ok show( scalar I18N::LangTags::Detect::detect()), "eu-mt";
ok show( j I18N::LangTags::Detect::detect()), q{["eu-mt"]};
print "# Test LANG...\n";
$ENV{'LANGUAGE'} = '';
$ENV{'REQUEST_METHOD'} = '';
$ENV{'LC_ALL'} = '';
$ENV{'LC_MESSAGES'} = '';
$ENV{'LANG'} = 'Eu_MT';
ok show( scalar I18N::LangTags::Detect::detect()), "eu-mt";
ok show( j I18N::LangTags::Detect::detect()), q{["eu-mt"]};
print "# Test HTTP_ACCEPT_LANGUAGE...\n";
$ENV{'REQUEST_METHOD'} = 'GET';
$ENV{'HTTP_ACCEPT_LANGUAGE'} = 'eu-MT';
ok show( scalar I18N::LangTags::Detect::detect()), "eu-mt";
ok show( j I18N::LangTags::Detect::detect()), q{["eu-mt"]};
$ENV{'HTTP_ACCEPT_LANGUAGE'} = 'x-plorp, zaz, eu-MT, i-klung';
ok show( scalar I18N::LangTags::Detect::detect()), "x-plorp";
ok show( j I18N::LangTags::Detect::detect()), qq{["x-plorp" "i-plorp" "zaz" "eu-mt" "i-klung" "x-klung"]};
$ENV{'HTTP_ACCEPT_LANGUAGE'} = 'x-plorp, zaz, eU-Mt, i-klung';
ok show( scalar I18N::LangTags::Detect::detect()), "x-plorp";
ok show( j I18N::LangTags::Detect::detect()), qq{["x-plorp" "i-plorp" "zaz" "eu-mt" "i-klung" "x-klung"]};
print "# Byebye!\n";
ok 1;