Upgrade to I18N::LangTags 0.30.
[p5sagit/p5-mst-13.2.git] / lib / Locale / Maketext / t / 04super.t
1
2 #sub Locale::Maketext::DEBUG () {10}
3 use Locale::Maketext;
4
5 use Test;
6 BEGIN { plan tests => 19 };
7
8 print "#\n# Testing non-tight insertion of super-ordinate language tags...\n#\n";
9
10 my @in = grep m/\S/, split /[\n\r]/, q{
11  NIX => NIX
12   sv => sv
13   en => en
14  hai => hai
15
16           pt-br => pt-br pt
17        pt-br fr => pt-br fr pt
18     pt-br fr pt => pt-br fr pt pt
19  pt-br fr pt de => pt-br fr pt de pt
20  de pt-br fr pt => de pt-br fr pt pt
21     de pt-br fr => de pt-br fr pt
22    hai pt-br fr => hai pt-br fr  pt
23
24 # Now test multi-part complicateds:
25    pt-br-janeiro fr => pt-br-janeiro fr pt-br pt 
26 pt-br-janeiro de fr => pt-br-janeiro de fr pt-br pt
27 pt-br-janeiro de pt fr => pt-br-janeiro de pt fr pt-br pt
28
29 ja    pt-br-janeiro fr => ja pt-br-janeiro fr pt-br pt 
30 ja pt-br-janeiro de fr => ja pt-br-janeiro de fr pt-br pt
31 ja pt-br-janeiro de pt fr => ja pt-br-janeiro de pt fr pt-br pt 
32
33 pt-br-janeiro de pt-br fr => pt-br-janeiro de pt-br fr pt-br pt pt
34  # an odd case, since we don't filter for uniqueness in this sub
35  
36 };
37
38 $Locale::Maketext::MATCH_SUPERS_TIGHTLY = 0;
39
40 foreach my $in (@in) {
41   $in =~ s/^\s+//s;
42   $in =~ s/\s+$//s;
43   $in =~ s/#.+//s;
44   next unless $in =~ m/\S/;
45   
46   my(@in, @should);
47   {
48     die "What kind of line is <$in>?!"
49      unless $in =~ m/^(.+)=>(.+)$/s;
50   
51     my($i,$s) = ($1, $2);
52     @in     = ($i =~ m/(\S+)/g);
53     @should = ($s =~ m/(\S+)/g);
54     #print "{@in}{@should}\n";
55   }
56   my @out = Locale::Maketext->_add_supers(
57     ("@in" eq 'NIX') ? () : @in
58   );
59   #print "O: ", join(' ', map "<$_>", @out), "\n";
60   @out = 'NIX' unless @out;
61
62   
63   if( @out == @should
64       and lc( join "\e", @out ) eq lc( join "\e", @should )
65   ) {
66     print "#     Happily got [@out] from [$in]\n";
67     ok 1;
68   } else {
69     ok 0;
70     print "#!!Got:         [@out]\n",
71           "#!! but wanted: [@should]\n",
72           "#!! from \"$in\"\n#\n";
73   }
74 }
75
76 print "#\n#\n# Bye-bye!\n";
77 ok 1;
78