xref: /onnv-gate/usr/src/cmd/perl/5.8.4/distrib/lib/I18N/LangTags/t/01test.t (revision 0:68f95e015346)
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