File: test_renderer.rb

package info (click to toggle)
ruby-commonmarker 0.23.10-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,456 kB
  • sloc: ansic: 10,575; ruby: 1,741; sh: 36; makefile: 22
file content (50 lines) | stat: -rw-r--r-- 1,355 bytes parent folder | download
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
# frozen_string_literal: true

require "test_helper"

class TestRenderer < Minitest::Test
  def setup
    @doc = CommonMarker.render_doc("Hi *there*")
  end

  def test_html_renderer
    renderer = HtmlRenderer.new
    result = renderer.render(@doc)

    assert_equal("<p>Hi <em>there</em></p>\n", result)
  end

  def test_multiple_tables
    content = <<~DOC
      | Input       | Expected         | Actual    |
      | ----------- | ---------------- | --------- |
      | One         | Two              | Three     |

      | Header   | Row  | Example |
      | :------: | ---: | :------ |
      | Foo      | Bar  | Baz     |
    DOC
    doc = CommonMarker.render_doc(content, :DEFAULT, [:autolink, :table, :tagfilter])
    results = CommonMarker::HtmlRenderer.new.render(doc)

    assert_equal(2, results.scan(/<tbody>/).size)
  end

  def test_escape_html_encoding
    my_renderer = Class.new(HtmlRenderer) do
      attr_reader :input_encoding, :output_encoding

      def text(node)
        @input_encoding = node.string_content.encoding
        escape_html(node.string_content).tap do |escaped|
          @output_encoding = escaped.encoding
        end
      end
    end

    renderer = my_renderer.new

    assert_equal(Encoding::UTF_8, renderer.render(@doc).encoding)
    assert_equal(renderer.input_encoding, renderer.output_encoding)
  end
end