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