123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491 |
- use strict;
- use File::Spec;
- BEGIN { if (defined($ENV{'top_srcdir'})) {unshift @INC, File::Spec->catdir($ENV{'top_srcdir'}, 'tp');} }
- require 't/test_utils.pl';
- my $simple_menu_text = '
- Before menu.
- @menu
- comment
- * menu entry name : node. description
- * node name:: description new
- * other entry: node,
- * last::
- description next line
- still description
- new comment
- * last node entry ::
- @end menu
- After menu.
- ';
- my @test_cases = (
- ['menu_title_before_entries',
- '@node Top
- @menu
- Horizontal space
- * subnode::
- @end menu
- @node subnode
- '],
- ['simple', $simple_menu_text],
- ['simple_no_menu', $simple_menu_text, {'SHOW_MENU' => 0}, {'SHOW_MENU' => 0}],
- ['menu_entry_node',
- '@menu
- * (f)a1::
- * (f)a2::
- * (f)a3:: d
- * (f)@@a@:::
- @end menu
- '],
- ['menu_entry_node_comments',
- '@menu
- * (f)a1c::@c c
- * (f)a2c:: @c c
- * (f)a3c:: d@c c
- * (f) a4 :: @c c
- @end menu
- '],
- ['menu_entry_name',
- '@menu
- * a: (f)b
- * a: (f)b1.c,
- * a: (f)b2.c,
- * a: (f)b3.c, d
- * a: (f)b1..
- * a : (f) b2 ..
- * a.n: (f)b3.. d
- * a: (f)b1.c.
- * a: (f)b2.c.
- * a: (f)b3.c. d
- @end menu
- '],
- ['menu_entry_name_comment',
- '@menu
- * a: (f)b@c c
- * a: (f)b @c c
- * a: (f)b1c.c,@c c
- * a: (f)b2c.c, @c c
- * a: (f)b3c.c, d@c c
- @end menu
- '],
- ['comment_on_menu_line',
- '@node Top
- @menu @c
- * first::
- @end menu
- @chapter first
- @node first
- '],
- ['invalid_info_menu_entry',
- '@node Top
- @menu
- * (f)@asis{a:}::
- * @asis{name:}: (f)node.
- * name: (f)@asis{node. }. d
- * name: (f)@asis{node,n}. d2
- * name: (f)@asis{node n}. d3
- @end menu
- '],
- ['no_colon_in_menu',
- '@node Top
- @menu
- * a
- @end menu
- '],
- ['detailmenu',
- '
- @menu
- * Copying Conditions:: Your rights.
- @detailmenu
- * detailmenu::
- @end detailmenu
- @end menu
- '],
- ['detailmenu_in_description',
- '
- @menu
- * Copying Conditions:: Your rights.
- @detailmenu
- * detailmenu::
- @end detailmenu
- @end menu
- '],
- ['entry_after_detailmenu',
- '@node Top
- @menu
- @detailmenu
- * second::
- @end detailmenu
- Menu comment
- * first::
- @detailmenu
- * second::
- @end detailmenu
- * second::
- @end menu
- @node first
- @node second
- '],
- ['detailmenu_on_subnodes',
- '@node Top
- @top top
- @menu
- * chapter::
- * chapter 2::
- @detailmenu
- * section::
- @end detailmenu
- @detailmenu
- Chap 2
- * section chap 2::
- * unnumberedsec::
- @end detailmenu
- @end menu
- @node chapter
- @chapter chapter
- @menu
- * section::
- @end menu
- @node section
- @section section
- @node chapter 2
- @chapter chapter 2
- @menu
- * section chap 2::
- * unnumberedsec::
- @end menu
- @node section chap 2
- @section section chap 2
- @node unnumberedsec
- @unnumberedsec unnumberedsec
- '],
- ['detailmenu_unknown_node',
- '@node Top
- @menu
- @detailmenu
- * unknown::
- @end detailmenu
- @end menu
- '],
- ['reference_to_external_manual',
- '
- @node Top
- @menu
- * (info)::
- @end menu
- '],
- ['menu_entry_no_entry',
- '@menu
- * a1:
- * a2:
- * a1c:@c c
- * a2c: @c c
- * a4@b{a}:
- * a5@b{b}: @c c
- @end menu
- '],
- ['menu_entry_no_entry_location',
- '@menu
- * (manual):: begin description
- * not an entry ?
- * (manual):: an entry
- in description
- * and here ?
- with text.
- * (last manual)::
- @end menu
- '],
- ['example_in_menu_comment',
- '@menu
- * entry::
- @example
- in
- example
- @end example
- menu comment.
- @end menu
- '],
- ['dash_in_menu',
- '
- @menu
- * entry---in: (manual)n---ode. description --- in.
- comment --- in.
- @end menu
- '],
- ['example_in_menu_description',
- '@node Top
- @top top
- @menu
- * (manual)::
- @example
- in
- example
- @end example
- @end menu
- '],
- ['block_commands_in_menu_description',
- '@node Top
- @top top
- @menu
- * (manual)::
- @itemize
- @item in item
- @end itemize
- @table @asis
- @item table item
- Text.
- @end table
- @html
- <b> in html </b>
- @end html
- @verbatim
- @end verbatim
- @end menu
- '],
- ['verb_in_menu_description',
- '@node Top
- @top top
- @menu
- * (manual)::
- @verb{: in verb
- :}
- @end menu
- '],
- ['inlineraw_in_menu_description',
- '@node Top
- @top top
- @menu
- * (manual)::
- @inlineraw{html, in inline raw
- end inlineraw}
- @end menu
- '],
- ['sc_in_menu',
- '
- @node Top
- @menu
- * @sc{value}:@sc{node}. @sc{descrip tion}
- @sc{menu comment}
- @example
- * @sc{menu-example value}:(dir)@sc{menu-example node}. @sc{menu-example descrip tion}
- @sc{menu-example comment}
- @end example
- @end menu
- @node @sc{node}
- @example
- @menu
- * @sc{example value}:(dir)@sc{example node}. @sc{example descrip tion}
- @sc{example comment}
- @end menu
- @end example
- '],
- ['formats_in_menu',
- '@node Top
- @menu
- * (gcc):: text
- @table @asis
- @item item
- * table line::
- @end table
- * (info)::
- @verbatim
- some @ verb{x atim
- * texinfo:: in @ verbatim
- @end verbatim
- * (manual2):: %
- @html
- <i></i>
- @end html
- Log$
- * (truc):: @acronym{description
- * acronym::}
- @example
- * subsubsection::
- Menu comment
- @end example
- @end menu
- '],
- ['menu_in_example',
- '@node Top
- @example
- @menu
- * (entry)::
- @cartouche
- in cartouche in description in menu in example
- @end cartouche
- @cartouche
- in cartouche in menu comment in menu in example
- @end cartouche
- * (node) menu:: a node in menu
- * a menu name:(other) node.
- @end menu
- @end example
- '],
- ['menu_pointing_to_anchor',
- '@node Top
- @top top
- Text
- @anchor{An anchor}
- @menu
- * An anchor:: menu entry pointing to the anchor.
- @end menu
- ']
- );
- my @test_invalid = (
- ['bad_beginning',
- '@menu
- *
- *
- *something::
- *@code{in code}::
- @end menu'
- ],
- ['menu_no_closed_after_empty_line',
- '@menu
- * (manual_in_menu):: desc2
- '],
- ['menu_no_closed_in_description',
- '@menu
- * (manual_in_menu):: desc'
- ],
- ['menu_no_closed_in_entry',
- '@menu
- * a1:'
- ],
- ['menu_no_closed_entry_beginning',
- '@menu
- * node'
- ],
- ['menu_no_closed_star',
- '@menu
- * '
- ],
- ['direntry_dircategory_after_first_node',
- '@node Top
- @top direntry direcategory after first node
- @dircategory Cat
- @direntry
- * in text: (in_text). in text
- @end direntry
- '],
- ['menu_in_deffn',
- '@node Top
- @deffn a b c
- @menu
- * (mynode)::
- @end menu
- @end deffn
- '],
- ['multiple_menus',
- '@node Top
- @menu
- * (a)a::
- @end menu
- @menu
- * (b)b::
- @end menu
- '],
- ['empty_menu_entry_name',
- '@node Top
- @menu
- * : (vvv). fff
- * :aaa,
- @end menu
- @node aaa
- ']
- );
- foreach my $test (@test_cases) {
- $test->[3]->{'SHOW_MENU'} = 1 if (!defined($test->[3]->{'SHOW_MENU'}));
- push @{$test->[2]->{'test_formats'}}, 'plaintext';
- push @{$test->[2]->{'test_formats'}}, 'html';
- push @{$test->[2]->{'test_formats'}}, 'xml';
- }
- our ($arg_test_case, $arg_generate, $arg_debug);
- run_all ('menu', [@test_cases, @test_invalid], $arg_test_case,
- $arg_generate, $arg_debug);
|