use strict;
use lib '.';
use Texinfo::ModulePath (undef, undef, undef, 'updirs' => 2);
require 't/test_utils.pl';
my @test_cases = (
['listoffloats_with_commands',
'@listoffloats th@\'eor@`eme
'],
['empty_listoffloats',
'@listoffloats
'],
['simple',
'@float Type, Label
In float.
@caption{Caption.}
@end float'],
['empty_label_with_space',
'@float Type,
@end float
'],
# FIXME no error 'empty node name after expansion'
['empty_label_with_space_comment',
'@float Type, @c comment
@end float
'],
['empty_label_no_space',
'@float Type,
@end float
'],
# FIXME no error 'empty node name after expansion'
['empty_label_no_space_comment',
'@float Type,@c comment
@end float
'],
['ref_to_float',
'@float Text, Label1
Float
@end float
@float , Label2
In foat 2.
@end float
@ref{Label1}
@ref{Label2}
'],
['float_with_at_commands',
'@float entr@\'ee, premi@`ere entr@\'ee
Ceci est notre premi@`ere entr@\'ee.
@caption{La premi@`ere entr@\'ee est importante}
@end float
@listoffloats entr@\'ee
'],
['footnote_in_caption',
'@node Top
@node chap
@listoffloats fl
@float fl, label
In float.
@caption{in caption@footnote{in footnote}}
@end float
'],
['footnote_in_caption_and_error',
'@node Top
@node chap
@listoffloats fl
@float fl, label
In float.
@caption{in caption@footnote{in footnote @error}}
@end float
'],
['anchor_in_caption',
'@node Top
@node chap
@listoffloats fl
@float fl, label
In float.
@caption{in caption@anchor{in anchor}}
@end float
'],
['cindex_in_caption',
'@node Top
@node chap
@listoffloats fl
@float fl, label
In float.
@caption{in caption
@cindex index entry
}
@end float
@printindex cp
'],
['empty_caption',
'@float a, b
In float A, B
@caption{}
@end float
@float , c
In float , C
@shortcaption{}
@end float
@float
In float
@shortcaption{}
@caption{}
@end float
'],
['complex_float',
'@node Top
@top Test floats
A list of floats at the beginning.
@listoffloats Text
After the listoffloats.
@menu
* chapter::
@end menu
@float Text, text with a lot of features
An example of float @enddots{}
@c makeinfo --docbook segfaults
@ifset texi2html
An example.
@example
example
@end example
A multitable.
@multitable {truc} {bidule}
@item truc @tab bidule
@item truc @tab bidule
@end multitable
@end ifset
An index entry
@cindex float example
A table.
@table @emph
@item truc
line
@end table
An itemize.
@itemize @minus
@item truc
line
@end itemize
A ref.
@xref{Top,xref Text with features}.
A footnote.
@footnote{footnote Text with features}.
@TeX{} and @emph{@b{t@\'e@^{@dotless{i}}}@url{an_url}} @sc{and} @verb{!it is @verb!} @ a wo@-rd @!@@ @AE{}.
@caption{ An example of float caption@enddots{}
An example.
@example
example
@end example
@anchor{Anchor in caption}
A table.
@table @emph
@item truc
line
@end table
A multitable.
@multitable {truc} {bidule}
@item truc @tab bidule
@item truc @tab bidule
@end multitable
An index entry
@cindex float example in caption
An itemize.
@itemize @minus
@item truc
line
@end itemize
A ref.
@xref{Top,xref Text with features caption}.
A footnote.
@footnote{footnote Text with features caption}.
@TeX{} and @emph{@b{t@\'e@^{@dotless{i}}}@url{an_url}} @sc{and} @verb{!it is @verb!} @ a wo@-rd @!@@ @AE{}.
}
@shortcaption{@TeX{} and @emph{@b{t@\'e@^{@dotless{i}}}@url{an_url}} @sc{and} @verb{!it is @verb!} @ a wo@-rd @!@@ @AE{}.}
@end float
@node chapter
@chapter A chapter
@float Text, float with a lot of features and no shortcaption
Float text of a float with a lot of features.
@caption{ An example of float caption@enddots{} 2
An example 2.
@example
example 2
@end example
A table 2.
@table @emph
@item truc 2
line 2
@end table
A multitable 2.
@multitable {truc} {bidule}
@item truc 2 @tab bidule
@item truc 2 @tab bidule
@end multitable
An index entry 2
@cindex float example in caption 2
An itemize 2.
@itemize @minus
@item truc 2
line
@end itemize
@anchor{Anchor in caption 2}
A ref 2.
@xref{Top,xref Text with features caption}.
A footnote 2.
@footnote{footnote Text with features caption 2}.
@TeX{} and @emph{@b{t@\'e@^{@dotless{i}}}@url{an_url}} @sc{and} @verb{!it is @verb!} @ a wo@-rd @!@@ @AE{}.
}
@end float
@xref{text with a lot of features}.
'],
['float_in_block_commands',
'@example
@float Text, in example
@caption{float in example}
@end float
@end example
@quotation
@float Text, in quotation
@caption{float in quotation}
@end float
@end quotation
@cartouche
@float Text, in cartouche
@caption{float in cartouche}
@end float
@end cartouche
'],
['numbering_captions_listoffloats',
'@node Top
@top Test floats
@float Text, text with a lot of features
@caption{ An example of float caption@enddots{}}
@shortcaption{@TeX{} and someething}
@end float
@float Text
No label but caption and shortcaption.
@caption{C No label}
@shortcaption{SC No label}
@end float
@float ,label but no type
No type but caption and shortcaption.
@caption{C No type}
@shortcaption{SC No type}
@end float
@float ,label but no type and no caption
No type but label and no caption nor shortcaption.
@end float
@float
No label, no type, no caption no shortcaption.
@end float
@float
No label, no type, but caption and shortcaption.
@caption{C No label, no type, but caption and shortcaption.}
@shortcaption{SC No label, no type, but caption and shortcaption.}
@end float
@float ,label but no type 2
Second float with no type.
@caption{C No type 2}
@shortcaption{SC No type 2}
@end float
@float Warning, warning in top
A warning
@caption{C A warning}
@shortcaption{SC A warning}
@end float
@menu
* chapter::
* Unnumbered::
* Chapter with unnumbsubsec::
* Appendix for float::
* list of floats::
@end menu
@node chapter
@chapter A chapter
@float Text, text in chapter
Text in chapter
@caption{C Text in chapter}
@end float
@float Text, float with a lot of features and no shortcaption
@caption{ An example of float caption, no shortcaption@enddots{}}
@end float
@float th@\'eor@`eme, theoreme
A th@\'eor@`eme
@caption{C A th@\'eor@`eme}
@end float
@float ,label but no type in chapter
float with no type.
@caption{C No type in chapter}
@shortcaption{SC No type in chapter}
@end float
@float Warning, warning in chapter
A warning
@caption{C A warning in chapter}
@shortcaption{SC A warning in chapter}
@end float
@menu
* section::
@end menu
@node section
@section A section
@float Text, text in section
A text in float no caption a label a type.
@end float
@node Unnumbered
@unnumbered Unnumbered
@menu
* Section within unnumbered::
@end menu
@float Text, unnumbered float
unnum
@shortcaption{SC unnumbered float}
@caption{C unnumbered float}
@end float
@float ,label but no type in unnumbered
float with no type.
@caption{C No type in unnumbered}
@shortcaption{SC No type in unnumbered}
@end float
@node Section within unnumbered
@section Section within unnumbered
@float Text, Section within unnumbered float
Section within unnumbered
@shortcaption{SC Section within unnumbered}
@caption{C Section within unnumbered}
@end float
@node Chapter with unnumbsubsec
@chapter Chapter with unnumbsubsec
@menu
* unnumbered sec::
@end menu
@float Text, Chapter with subsec float
Chap
@shortcaption{SC Chapter with subsec}
@caption{C Chapter with subsec}
@end float
@node unnumbered sec
@unnumberedsec unnumbered sec
@float Text, unnumbered sec float
Chap
@shortcaption{SC unnumbered sec float}
@caption{C unnumbered sec float}
@end float
@float ,label but no type in unnumbered subsec in chapter
float with no type.
@caption{C No type in unnumbered subsec in chapter}
@shortcaption{SC No type in unnumbered subsec in chapter}
@end float
@node Appendix for float
@appendix Appendix for float
@float Text, appendix sec float
Appendix
@shortcaption{SC appendix sec float}
@caption{C appendix sec float}
@end float
@node list of floats
@unnumbered list of floats
See @ref{text in section}.
And (@pxref{text in chapter}).
@xref{text with a lot of features}.
And now a ref (without manual or printed manual)
@ref{text with a lot of features, cross ref, title}.
And now a ref (with manual without printed manual)
@ref{text with a lot of features, cross ref, title, manual}.
And now a ref (without manual with a printed manual)
@ref{text with a lot of features, cross ref, title,, printed manual title}.
A ref to float without type @ref{label but no type}.
@listoffloats Text
@listoffloats th@\'eor@`eme
@bye
'],
['empty_listoffloats_with_floats',
'
@float , label1
Label no caption.
@end float
@float , label2
Label and caption.
@caption{caption with label}
@end float
@float
no label no caption
@end float
@float
no label caption
@caption{caption no label}
@end float
@listoffloats
'],
['float_copying',
'@copying
@float Copyright notice, public domain
Public domain is not really a licence, as it means than
the author abandon his copyright.
@caption{The Public Domain notice@footnote{
The caption copying footnote
@anchor{caption copying footnote anchor}
@cindex indexed caption copying footnote
@findex public domain function
see @ref{Copying and floats}.
}
@anchor{public domain anchor}
@cindex indexed caption
@findex indexed caption function
}
@end float
@end copying
@node Top
@top Top
@insertcopying
@menu
* Copying and floats::
@end menu
@node Copying and floats
@appendix Copying and floats
@insertcopying
@insertcopying
@listoffloats Copyright notice
@printindex cp
@printindex fn
'],
['comment_space_comand_in_float',
'@node Top
@node chap
@float Text @ , label @ @c float
Float
@end float
@listoffloats Text @ @c listoffloats
'],
['special_characters_in_float_type',
'@node Top
@top top
@node chap
@chapter chap
@float A < " `` ` \' \' \\aaa @. --- @var{in var}, L < " `` ` \' \' \\aaa @. --- @var{in var}
F
@caption{float A < " `` ` \' \' \\aaa @. --- @var{in var}}
@end float
@listoffloats A < " `` ` \' \' \\aaa @. --- @var{in var}
'],
);
my %info_tests = (
'anchor_in_caption' => 1,
'footnote_in_caption' => 1,
'cindex_in_caption' => 1,
'float_copying' => 1,
'comment_space_comand_in_float' => 1,
'special_characters_in_float_type' => 1,
);
foreach my $test (@test_cases) {
$test->[2]->{'test_formats'} = ['plaintext'];
if ($info_tests{$test->[0]}) {
push @{$test->[2]->{'test_formats'}}, 'info';
}
push @{$test->[2]->{'test_formats'}}, 'html';
push @{$test->[2]->{'test_formats'}}, 'xml';
push @{$test->[2]->{'test_formats'}}, 'latex';
$test->[2]->{'full_document'} = 1 unless (exists($test->[2]->{'full_document'}));
}
run_all('float', \@test_cases);