mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
810008293f
* lib/rdoc/markup/attribute_manager.rb: Removed useless empty check. * lib/rdoc/markup/to_markdown.rb: Support links from other formats. * lib/rdoc/markup/formatter.rb: ditto. * lib/rdoc/markup/to_html.rb: ditto. * test/rdoc/test_rdoc_markup_formatter.rb: Test for above. * test/rdoc/test_rdoc_markup_to_html.rb: ditto. * test/rdoc/test_rdoc_markup_to_markdown.rb: ditto. * lib/rdoc/rd/block_parser.rb: Improved footnote display. Worked around bug in footnote conversion to Markdown. * test/rdoc/test_rdoc_rd_block_parser.rb: Test for above. * lib/rdoc/rd/inline_parser.rb: Fixed bug with emphasis inside verbatim. * test/rdoc/test_rdoc_rd_inline_parser.rb: Test for above. * test/rdoc/test_rdoc_parser_rd.rb: Use mu_pp, use shortcut methods. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
149 lines
3.3 KiB
Ruby
149 lines
3.3 KiB
Ruby
require 'rdoc/test_case'
|
|
|
|
class TestRDocMarkupFormatter < RDoc::TestCase
|
|
|
|
class ToTest < RDoc::Markup::Formatter
|
|
|
|
def initialize markup
|
|
super nil, markup
|
|
|
|
add_tag :TT, '<code>', '</code>'
|
|
end
|
|
|
|
def accept_paragraph paragraph
|
|
@res << attributes(paragraph.text)
|
|
end
|
|
|
|
def attributes text
|
|
convert_flow @am.flow text.dup
|
|
end
|
|
|
|
def handle_special_CAPS special
|
|
"handled #{special.text}"
|
|
end
|
|
|
|
def start_accepting
|
|
@res = ""
|
|
end
|
|
|
|
def end_accepting
|
|
@res
|
|
end
|
|
|
|
end
|
|
|
|
def setup
|
|
super
|
|
|
|
@markup = @RM.new
|
|
@markup.add_special(/[A-Z]+/, :CAPS)
|
|
|
|
@attribute_manager = @markup.attribute_manager
|
|
@attributes = @attribute_manager.attributes
|
|
|
|
@to = ToTest.new @markup
|
|
|
|
@caps = @attributes.bitmap_for :CAPS
|
|
@special = @attributes.bitmap_for :_SPECIAL_
|
|
@tt = @attributes.bitmap_for :TT
|
|
end
|
|
|
|
def test_class_gen_relative_url
|
|
def gen(from, to)
|
|
RDoc::Markup::ToHtml.gen_relative_url from, to
|
|
end
|
|
|
|
assert_equal 'a.html', gen('a.html', 'a.html')
|
|
assert_equal 'b.html', gen('a.html', 'b.html')
|
|
|
|
assert_equal 'd.html', gen('a/c.html', 'a/d.html')
|
|
assert_equal '../a.html', gen('a/c.html', 'a.html')
|
|
assert_equal 'a/c.html', gen('a.html', 'a/c.html')
|
|
end
|
|
|
|
def special_names
|
|
@attribute_manager.special.map do |_, mask|
|
|
@attributes.as_string mask
|
|
end
|
|
end
|
|
|
|
def test_add_special_RDOCLINK
|
|
@to.add_special_RDOCLINK
|
|
|
|
assert_includes special_names, 'RDOCLINK'
|
|
end
|
|
|
|
def test_add_special_TIDYLINK
|
|
@to.add_special_TIDYLINK
|
|
|
|
assert_includes special_names, 'TIDYLINK'
|
|
end
|
|
|
|
def test_parse_url
|
|
scheme, url, id = @to.parse_url 'example/foo'
|
|
|
|
assert_equal 'http', scheme
|
|
assert_equal 'http://example/foo', url
|
|
assert_equal nil, id
|
|
end
|
|
|
|
def test_parse_url_anchor
|
|
scheme, url, id = @to.parse_url '#foottext-1'
|
|
|
|
assert_equal nil, scheme
|
|
assert_equal '#foottext-1', url
|
|
assert_equal nil, id
|
|
end
|
|
|
|
def test_parse_url_link
|
|
scheme, url, id = @to.parse_url 'link:README.txt'
|
|
|
|
assert_equal 'link', scheme
|
|
assert_equal 'README.txt', url
|
|
assert_equal nil, id
|
|
end
|
|
|
|
def test_parse_url_link_id
|
|
scheme, url, id = @to.parse_url 'link:README.txt#label-foo'
|
|
|
|
assert_equal 'link', scheme
|
|
assert_equal 'README.txt#label-foo', url
|
|
assert_equal nil, id
|
|
end
|
|
|
|
def test_parse_url_rdoc_label
|
|
scheme, url, id = @to.parse_url 'rdoc-label:foo'
|
|
|
|
assert_equal 'link', scheme
|
|
assert_equal '#foo', url
|
|
assert_equal nil, id
|
|
|
|
scheme, url, id = @to.parse_url 'rdoc-label:foo:bar'
|
|
|
|
assert_equal 'link', scheme
|
|
assert_equal '#foo', url
|
|
assert_equal ' id="bar"', id
|
|
end
|
|
|
|
def test_parse_url_scheme
|
|
scheme, url, id = @to.parse_url 'http://example/foo'
|
|
|
|
assert_equal 'http', scheme
|
|
assert_equal 'http://example/foo', url
|
|
assert_equal nil, id
|
|
|
|
scheme, url, id = @to.parse_url 'https://example/foo'
|
|
|
|
assert_equal 'https', scheme
|
|
assert_equal 'https://example/foo', url
|
|
assert_equal nil, id
|
|
end
|
|
|
|
def test_convert_tt_special
|
|
converted = @to.convert '<code>AAA</code>'
|
|
|
|
assert_equal '<code>AAA</code>', converted
|
|
end
|
|
|
|
end
|
|
|