1require 'rdoc/test_case'
2
3class TestRDocMarkupToTableOfContents < RDoc::Markup::FormatterTestCase
4
5  add_visitor_tests
6
7  def setup
8    super
9
10    @to = RDoc::Markup::ToTableOfContents.new
11  end
12
13  def end_accepting
14    assert_equal %w[hi], @to.res
15  end
16
17  def empty
18    assert_empty @to.res
19  end
20
21  def accept_heading
22    assert_equal [@RM::Heading.new(5, 'Hello')], @to.res
23  end
24
25  def accept_heading_1
26    assert_equal [@RM::Heading.new(1, 'Hello')], @to.res
27  end
28
29  def accept_heading_2
30    assert_equal [@RM::Heading.new(2, 'Hello')], @to.res
31  end
32
33  def accept_heading_3
34    assert_equal [@RM::Heading.new(3, 'Hello')], @to.res
35  end
36
37  def accept_heading_4
38    assert_equal [@RM::Heading.new(4, 'Hello')], @to.res
39  end
40
41  def accept_heading_b
42    assert_equal [@RM::Heading.new(1, '*Hello*')], @to.res
43  end
44
45  def accept_heading_suppressed_crossref
46    assert_equal [@RM::Heading.new(1, '\\Hello')], @to.res
47  end
48
49  alias accept_blank_line                             empty
50  alias accept_block_quote                            empty
51  alias accept_document                               empty
52  alias accept_list_end_bullet                        empty
53  alias accept_list_end_label                         empty
54  alias accept_list_end_lalpha                        empty
55  alias accept_list_end_note                          empty
56  alias accept_list_end_number                        empty
57  alias accept_list_end_ualpha                        empty
58  alias accept_list_item_end_bullet                   empty
59  alias accept_list_item_end_label                    empty
60  alias accept_list_item_end_lalpha                   empty
61  alias accept_list_item_end_note                     empty
62  alias accept_list_item_end_number                   empty
63  alias accept_list_item_end_ualpha                   empty
64  alias accept_list_item_start_bullet                 empty
65  alias accept_list_item_start_label                  empty
66  alias accept_list_item_start_lalpha                 empty
67  alias accept_list_item_start_note                   empty
68  alias accept_list_item_start_note_2                 empty
69  alias accept_list_item_start_note_multi_description empty
70  alias accept_list_item_start_note_multi_label       empty
71  alias accept_list_item_start_number                 empty
72  alias accept_list_item_start_ualpha                 empty
73  alias accept_list_start_bullet                      empty
74  alias accept_list_start_label                       empty
75  alias accept_list_start_lalpha                      empty
76  alias accept_list_start_note                        empty
77  alias accept_list_start_number                      empty
78  alias accept_list_start_ualpha                      empty
79  alias accept_paragraph                              empty
80  alias accept_paragraph_b                            empty
81  alias accept_paragraph_br                           empty
82  alias accept_paragraph_break                        empty
83  alias accept_paragraph_i                            empty
84  alias accept_paragraph_plus                         empty
85  alias accept_paragraph_star                         empty
86  alias accept_paragraph_underscore                   empty
87  alias accept_raw                                    empty
88  alias accept_rule                                   empty
89  alias accept_verbatim                               empty
90  alias list_nested                                   empty
91  alias list_verbatim                                 empty
92  alias start_accepting                               empty
93
94  def test_accept_document_omit_headings_below
95    document = doc
96    document.omit_headings_below = 2
97
98    @to.accept_document document
99
100    assert_equal 2, @to.omit_headings_below
101  end
102
103  def test_accept_heading_suppressed
104    @to.start_accepting
105    @to.omit_headings_below = 4
106
107    suppressed = head 5, 'Hello'
108
109    @to.accept_heading suppressed
110
111    assert_empty @to.res
112  end
113
114  def test_suppressed_eh
115    @to.omit_headings_below = nil
116
117    refute @to.suppressed? head(1, '')
118
119    @to.omit_headings_below = 1
120
121    refute @to.suppressed? head(1, '')
122    assert @to.suppressed? head(2, '')
123  end
124
125end
126
127