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