1# Before `make install' is performed this script should be runnable with 2# `make test'. After `make install' it should work as `perl test.pl' 3 4######################### We start with some black magic to print on failure. 5require 5; 6 # Time-stamp: "2003-07-20 07:36:49 ADT" 7use strict; 8use Test; 9BEGIN { plan tests => 64 }; 10BEGIN { ok 1 } 11use I18N::LangTags (':ALL'); 12 13print "# Perl v$], I18N::LangTags v$I18N::LangTags::VERSION\n"; 14 15ok !is_language_tag(''); 16ok is_language_tag('fr'); 17ok is_language_tag('fr-ca'); 18ok is_language_tag('fr-CA'); 19ok !is_language_tag('fr-CA-'); 20ok !is_language_tag('fr_CA'); 21ok is_language_tag('fr-ca-joual'); 22ok !is_language_tag('frca'); 23ok is_language_tag('nav'); # (not actual tag) 24ok is_language_tag('nav-shiprock'); # (not actual tag) 25ok !is_language_tag('nav-ceremonial'); # subtag too long 26ok !is_language_tag('x'); 27ok !is_language_tag('i'); 28ok is_language_tag('i-borg'); # NB: fictitious tag 29ok is_language_tag('x-borg'); 30ok is_language_tag('x-borg-prot5123'); 31ok same_language_tag('x-borg-prot5123', 'i-BORG-Prot5123' ); 32ok !same_language_tag('en', 'en-us' ); 33 34ok 0 == similarity_language_tag('en-ca', 'fr-ca'); 35ok 1 == similarity_language_tag('en-ca', 'en-us'); 36ok 2 == similarity_language_tag('en-us-southern', 'en-us-western'); 37ok 2 == similarity_language_tag('en-us-southern', 'en-us'); 38 39ok grep $_ eq 'hi', panic_languages('kok'); 40ok grep $_ eq 'en', panic_languages('x-woozle-wuzzle'); 41ok ! grep $_ eq 'mr', panic_languages('it'); 42ok grep $_ eq 'es', panic_languages('it'); 43ok grep $_ eq 'it', panic_languages('es'); 44 45 46print "# Now the ::List tests...\n"; 47print "# Perl v$], I18N::LangTags::List v$I18N::LangTags::List::VERSION\n"; 48 49use I18N::LangTags::List; 50foreach my $lt (qw( 51 en 52 en-us 53 en-kr 54 el 55 elx 56 i-mingo 57 i-mingo-tom 58 x-mingo-tom 59 it 60 it-it 61 it-IT 62 it-FR 63 ak 64 aka 65 jv 66 jw 67 no 68 no-nyn 69 nn 70 i-lux 71 lb 72 wa 73 yi 74 ji 75 den-syllabic 76 den-syllabic-western 77 den-western 78 den-latin 79 cre-syllabic 80 cre-syllabic-western 81 cre-western 82 cre-latin 83 cr-syllabic 84 cr-syllabic-western 85 cr-western 86 cr-latin 87)) { 88 my $name = I18N::LangTags::List::name($lt); 89 if($name) { 90 ok(1); 91 print "# $lt -> $name\n"; 92 } else { 93 ok(0); 94 print "# Failed lookup on $lt\n"; 95 } 96} 97 98 99 100print "# So there!\n"; 101 102