use strict;
use Test::More tests => 21;
BEGIN {use_ok('I18N::LangTags', ':ALL')};
note("Perl v$], I18N::LangTags v$I18N::LangTags::VERSION");
note("Loaded from " . ($INC{'I18N/LangTags.pm'} || "??"));
foreach ('C', 'POSIX') {
# It seems that the acceptable result is either '' or undef
my $tag = locale2language_tag($_);
is($tag, defined $tag ? '' : undef, "locale2language_tag('$_')");
}
foreach (['en', 'en'],
['en_US', 'en-us'],
['en_US.ISO8859-1', 'en-us'],
['eu_mt', 'eu-mt'],
['eu', 'eu'],
['it', 'it'],
['it_IT', 'it-it'],
['it_IT.utf8', 'it-it'],
['it_IT.utf8@euro', 'it-it'],
['it_IT@euro', 'it-it'],
['zh_CN.gb18030', 'zh-cn'],
['zh_CN.gbk', 'zh-cn'],
['zh_CN.utf8', 'zh-cn'],
['zh_HK', 'zh-hk'],
['zh_HK.utf8', 'zh-hk'],
['zh_TW', 'zh-tw'],
['zh_TW.euctw', 'zh-tw'],
['zh_TW.utf8', 'zh-tw'],
) {
my ($tag, $expect) = @$_;
is(lc locale2language_tag($tag), $expect,
"locale2language_tag('$tag')");
}