File: text_formatter_test_case.rb

package info (click to toggle)
ruby3.4 3.4.9-1~exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 152,040 kB
  • sloc: ruby: 1,262,509; ansic: 831,188; yacc: 28,233; pascal: 7,359; sh: 3,910; python: 1,799; cpp: 1,158; makefile: 827; asm: 808; javascript: 414; lisp: 109; perl: 62; awk: 36; xml: 4; sed: 4
file content (131 lines) | stat: -rw-r--r-- 3,007 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# frozen_string_literal: true
##
# Test case for creating new plain-text RDoc::Markup formatters.  See also
# RDoc::Markup::FormatterTestCase
#
# See test_rdoc_markup_to_rdoc.rb for a complete example.
#
# Example:
#
#  class RDocMarkupToNewTextFormatTest < RDoc::Markup::TextFormatterTestCase
#
#    add_visitor_tests
#    add_text_tests
#
#    def setup
#      super
#
#      @to = RDoc::Markup::ToNewTextFormat.new
#    end
#
#    def accept_blank_line
#      assert_equal :junk, @to.res.join
#    end
#
#    # ...
#
#  end

class RDoc::Markup::TextFormatterTestCase < RDoc::Markup::FormatterTestCase

  ##
  # Adds test cases to the calling TestCase.

  def self.add_text_tests
    self.class_eval do

      ##
      # Test case that calls <tt>@to.accept_heading</tt>

      def test_accept_heading_indent
        @to.start_accepting
        @to.indent = 3
        @to.accept_heading @RM::Heading.new(1, 'Hello')

        accept_heading_indent
      end

      ##
      # Test case that calls <tt>@to.accept_rule</tt>

      def test_accept_rule_indent
        @to.start_accepting
        @to.indent = 3
        @to.accept_rule @RM::Rule.new(1)

        accept_rule_indent
      end

      ##
      # Test case that calls <tt>@to.accept_verbatim</tt>

      def test_accept_verbatim_indent
        @to.start_accepting
        @to.indent = 2
        @to.accept_verbatim @RM::Verbatim.new("hi\n", " world\n")

        accept_verbatim_indent
      end

      ##
      # Test case that calls <tt>@to.accept_verbatim</tt> with a big indent

      def test_accept_verbatim_big_indent
        @to.start_accepting
        @to.indent = 2
        @to.accept_verbatim @RM::Verbatim.new("hi\n", "world\n")

        accept_verbatim_big_indent
      end

      ##
      # Test case that calls <tt>@to.accept_paragraph</tt> with an indent

      def test_accept_paragraph_indent
        @to.start_accepting
        @to.indent = 3
        @to.accept_paragraph @RM::Paragraph.new(('words ' * 30).strip)

        accept_paragraph_indent
      end

      ##
      # Test case that calls <tt>@to.accept_paragraph</tt> with a long line

      def test_accept_paragraph_wrap
        @to.start_accepting
        @to.accept_paragraph @RM::Paragraph.new(('words ' * 30).strip)

        accept_paragraph_wrap
      end

      ##
      # Test case that calls <tt>@to.accept_table</tt>

      def test_accept_table_align
        header = ['AA', 'BB', 'CCCCC', 'DDDDD']
        body = [
          ['', 'bbb', 'c', ''],
          ['aaaa', 'b', '', 'dd'],
          ['a', '', 'cc', 'dd']
        ]
        aligns = [nil, :left, :right, :center]
        @to.start_accepting
        @to.accept_table header, body, aligns

        accept_table_align
      end

      ##
      # Test case that calls <tt>@to.attributes</tt> with an escaped
      # cross-reference.  If this test doesn't pass something may be very
      # wrong.

      def test_attributes
        assert_equal 'Dog', @to.attributes("\\Dog")
      end

    end
  end

end