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