use strict; use lib '.'; use Texinfo::ModulePath (undef, undef, undef, 'updirs' => 2); require 't/test_utils.pl'; my @test_cases = ( ['simple_documentlanguage', '@documentlanguage fr @node Top @node chap @defivar AAA BBB CCC @end defivar '], # REMARK it is worth noting that the # @defivar in @insertcopying after @documentlanguage de appears # in german in the document, (and after @documentlanguage pt at # the end appears in portruguese) but the index entry is in fr, because # the index entry is set in the @copying block which is in # @documentlanguage fr. # Also the copying comment at the beginning of each file is in fr ['multiple_documentlanguage', '@documentlanguage fr @copying @defivar copying a b @error{} @end defivar @end copying @node Top @top top @node chap @chapter Chap @defivar fr BBB CCC @error{} @end defivar @documentlanguage de @insertcopying @documentlanguage hr @defivar hr BBB CCC @error{} @end defivar @insertcopying @printindex vr '], ['multiple_in_preamble', '@documentlanguage fr @copying @defivar copying a b @error{} @end defivar @end copying @documentlanguage hr @node Top @top top section @node chapter @chapter chap @defivar hr BBB CCC @error{} @end defivar @documentlanguage de @defivar de FFF GGG @end defivar '], ['multiple_in_preamble_before_node', '@documentlanguage fr @copying @defivar copying a b @error{} @end defivar @end copying @documentlanguage hr Text ending the preamble @documentlanguage de @node Top @top top section @node chapter @chapter chap @defivar c BBB CCC @error{} @end defivar '], ['appendix_translated', '@documentlanguage fr @node Top @top top @appendix dernier @contents '], ['command_translated', '@documentlanguage fr @node Top @top top @error{} @error{} @node chapter @error{} @chapter Chapter '], ['unknown_language', '@documentlanguage unknown @node Top @top unknkown language @node chapter @chapter Chapter Unknown language. @xref{Top}. @documentlanguage another_UNKNOWN Another unknown language. @xref{Top}. '], ['unknown_region', '@documentlanguage fr_NOWHERE @node Top @node chap @defivar AAA BBB CCC @end defivar '], ); my $multiple_lang_chapters_text = ' @documentencoding utf-8 @c @node Top is ignored in TeX and LaTeX, so switch here @iftex @documentlanguage ja @end iftex @iflatex @documentlanguage ja @end iflatex @node Top @top Multi language file @menu * chapter ja:: * chapter en:: * chapter fr_FR:: * chapter de:: * chapter pt_BR:: @end menu @documentlanguage ja @node chapter ja @chapter ja In japanese. @xref{chapter ja}. @defivar AAA BBB CCC @end defivar @documentlanguage en @node chapter en @chapter en In english. @xref{chapter ja}. @defivar AAA BBB CCC @end defivar @documentlanguage fr_FR @node chapter fr_FR @chapter fr_FR @defivar AAA BBB CCC @end defivar @documentlanguage de @node chapter de @chapter de @documentlanguage pt_BR @node chapter pt_BR @chapter pt_bR In brazilian. @xref{chapter ja}. '; my @file_tests = ( # this first test expands everything including latex, so ends up # with a redundant @documentlanguage ['multiple_lang_chapters', $multiple_lang_chapters_text, {'test_input_file_name' => 'multiple_lang_chapters.texi'}, {'SPLIT' => 0}], ['multiple_lang_chapters_texi2html', $multiple_lang_chapters_text, {'test_input_file_name' => 'multiple_lang_chapters.texi', 'EXPANDED_FORMATS' => ['html']}, {'SPLIT' => 0, 'TEXI2HTML' => 1, 'TEST' => 1}], ['documentlanguage', undef, {'test_file' => '../../tests/formatting/documentlanguage.texi',}, {'SPLIT' => 0}, ], ['documentlanguage_option', undef, {'test_file' => '../../tests/formatting/documentlanguage.texi', 'documentlanguage' => 'fr'}, {'SPLIT' => 0, 'documentlanguage' => 'fr'}, ], ['documentlanguage_unknown', undef, {'test_file' => '../../tests/formatting/documentlanguage.texi', 'documentlanguage' => 'unknown'}, {'SPLIT' => 0, 'documentlanguage' => 'unknown'}, ], ); # expand latex my @latex_file_tests = ( ['multiple_lang_chapters_latex', $multiple_lang_chapters_text, {'test_input_file_name' => 'multiple_lang_chapters.texi', 'EXPANDED_FORMATS' => ['latex']} ] ); my %info_tests = ( 'multiple_documentlanguage' => 1, 'multiple_in_preamble' => 1, 'multiple_in_preamble_before_node' => 1, 'appendix_translated' => 1, 'command_translated' => 1, 'unknown_language' => 1, 'unknown_region' => 1, ); my %xml_tests = ( 'multiple_documentlanguage' => 1, 'multiple_in_preamble' => 1, 'multiple_in_preamble_before_node' => 1, ); my %docbook_doc_tests = ( 'multiple_documentlanguage' => 1, 'multiple_in_preamble' => 1, 'multiple_in_preamble_before_node' => 1, ); foreach my $test (@test_cases) { push @{$test->[2]->{'test_formats'}}, 'plaintext'; if ($info_tests{$test->[0]}) { push @{$test->[2]->{'test_formats'}}, 'info'; push @{$test->[2]->{'test_formats'}}, 'html'; } if ($xml_tests{$test->[0]}) { push @{$test->[2]->{'test_formats'}}, 'xml'; } if ($docbook_doc_tests{$test->[0]}) { push @{$test->[2]->{'test_formats'}}, 'docbook_doc'; } $test->[2]->{'full_document'} = 1 unless (exists($test->[2]->{'full_document'})); } foreach my $test (@file_tests) { push @{$test->[2]->{'test_formats'}}, 'file_html'; push @{$test->[2]->{'test_formats'}}, 'file_info'; $test->[2]->{'full_document'} = 1 unless (exists($test->[2]->{'full_document'})); } foreach my $test (@latex_file_tests) { push @{$test->[2]->{'test_formats'}}, 'file_latex'; $test->[2]->{'full_document'} = 1 unless (exists($test->[2]->{'full_document'})); } run_all('languages', [@test_cases, @file_tests, @latex_file_tests]);