1use strict; 2#sub I18N::LangTags::Detect::DEBUG () {10} 3 4use Test::More tests => 19; 5BEGIN {use_ok('I18N::LangTags', 'implicate_supers_strictly');} 6 7note('Testing strict (non-tight) insertion of super-ordinate language tags'); 8 9my @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 fr pt 17 pt-br fr pt => pt-br fr pt 18 pt-br fr pt de => pt-br fr pt de 19 de pt-br fr pt => de pt-br fr pt 20 de pt-br fr => de pt-br fr pt 21 hai pt-br fr => hai pt-br fr pt 22 23# Now test multi-part complicateds: 24 pt-br-janeiro fr => pt-br-janeiro fr pt-br pt 25pt-br-janeiro de fr => pt-br-janeiro de fr pt-br pt 26pt-br-janeiro de pt fr => pt-br-janeiro de pt fr pt-br 27 28ja pt-br-janeiro fr => ja pt-br-janeiro fr pt-br pt 29ja pt-br-janeiro de fr => ja pt-br-janeiro de fr pt-br pt 30ja pt-br-janeiro de pt fr => ja pt-br-janeiro de pt fr pt-br 31 32pt-br-janeiro de pt-br fr => pt-br-janeiro de pt-br fr pt 33 # an odd case, since we don't filter for uniqueness in this sub 34 35}; 36 37 38foreach my $in (@in) { 39 $in =~ s/^\s+//s; 40 $in =~ s/\s+$//s; 41 $in =~ s/#.+//s; 42 next unless $in =~ m/\S/; 43 44 my(@in, @should); 45 { 46 die "What kind of line is <$in>?!" 47 unless $in =~ m/^(.+)=>(.+)$/s; 48 49 my($i,$s) = ($1, $2); 50 @in = ($i =~ m/(\S+)/g); 51 @should = ($s =~ m/(\S+)/g); 52 } 53 my @out = I18N::LangTags::implicate_supers_strictly( 54 ("@in" eq 'NIX') ? () : @in 55 ); 56 @out = 'NIX' unless @out; 57 58 is_deeply(\@out, \@should, "implicate_supers_strictly for [$in]"); 59} 60