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