1
2#sub Locale::Maketext::DEBUG () {10}
3use Locale::Maketext;
4
5use Test;
6BEGIN { plan tests => 19 };
7
8print "#\n# Testing non-tight insertion of super-ordinate language tags...\n#\n";
9
10my @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
26pt-br-janeiro de fr => pt-br-janeiro de fr pt-br pt
27pt-br-janeiro de pt fr => pt-br-janeiro de pt fr pt-br pt
28
29ja    pt-br-janeiro fr => ja pt-br-janeiro fr pt-br pt
30ja pt-br-janeiro de fr => ja pt-br-janeiro de fr pt-br pt
31ja pt-br-janeiro de pt fr => ja pt-br-janeiro de pt fr pt-br pt
32
33pt-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
40foreach 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
76print "#\n#\n# Bye-bye!\n";
77ok 1;
78
79