mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Move RDoc tests out of lib/
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
c3c58513d7
commit
2a812650a8
4 changed files with 224 additions and 223 deletions
|
@ -1,3 +1,7 @@
|
|||
Fri Dec 28 15:12:05 2007 Eric Hodel <drbrain@segment7.net>
|
||||
|
||||
* lib/rdoc, test/rdoc: Move RDoc tests out of lib/.
|
||||
|
||||
Fri Dec 28 15:10:47 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* encoding.c (set_base_encoding, enc_base_encoding): renamed
|
||||
|
|
|
@ -81,7 +81,12 @@ module SM
|
|||
end
|
||||
|
||||
def to_s
|
||||
"Special: type=#{type}, text=#{text.dump}"
|
||||
"Special: type=#{type}, name=#{SM::Attribute.as_string type}, text=#{text.dump}"
|
||||
end
|
||||
|
||||
def inspect
|
||||
"#<SM::Special:0x%x @type=%p, name=%p @text=%p>" % [
|
||||
object_id, @type, SM::Attribute.as_string(type), text.dump]
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,18 +1,14 @@
|
|||
require 'test/unit'
|
||||
|
||||
$:.unshift "../../.."
|
||||
|
||||
require 'rdoc/markup/simple_markup'
|
||||
|
||||
include SM
|
||||
|
||||
class TestParse < Test::Unit::TestCase
|
||||
class TestSimpleMarkup < Test::Unit::TestCase
|
||||
|
||||
class MockOutput
|
||||
|
||||
def start_accepting
|
||||
@res = []
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def end_accepting
|
||||
@res
|
||||
end
|
||||
|
@ -52,28 +48,21 @@ class TestParse < Test::Unit::TestCase
|
|||
end
|
||||
|
||||
def basic_conv(str)
|
||||
sm = SimpleMarkup.new
|
||||
sm = SM::SimpleMarkup.new
|
||||
mock = MockOutput.new
|
||||
sm.convert(str, mock)
|
||||
sm.content
|
||||
end
|
||||
|
||||
def line_types(str, expected)
|
||||
p = SimpleMarkup.new
|
||||
mock = MockOutput.new
|
||||
p.convert(str, mock)
|
||||
assert_equal(expected, p.get_line_types.map{|type| type.to_s[0,1]}.join(''))
|
||||
end
|
||||
|
||||
def line_groups(str, expected)
|
||||
p = SimpleMarkup.new
|
||||
p = SM::SimpleMarkup.new
|
||||
mock = MockOutput.new
|
||||
|
||||
block = p.convert(str, mock)
|
||||
|
||||
if block != expected
|
||||
rows = (0...([expected.size, block.size].max)).collect{|i|
|
||||
[expected[i]||"nil", block[i]||"nil"]
|
||||
[expected[i]||"nil", block[i]||"nil"]
|
||||
}
|
||||
printf "\n\n%35s %35s\n", "Expected", "Got"
|
||||
rows.each {|e,g| printf "%35s %35s\n", e.dump, g.dump }
|
||||
|
@ -82,120 +71,11 @@ class TestParse < Test::Unit::TestCase
|
|||
assert_equal(expected, block)
|
||||
end
|
||||
|
||||
def test_tabs
|
||||
str = "hello\n dave"
|
||||
assert_equal(str, basic_conv(str))
|
||||
str = "hello\n\tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = "hello\n \tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = "hello\n \tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = "hello\n \tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = "hello\n \tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = "hello\n \tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = "hello\n \tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = "hello\n \tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = "hello\n \tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = ".\t\t."
|
||||
assert_equal(". .", basic_conv(str))
|
||||
end
|
||||
|
||||
def test_whitespace
|
||||
assert_equal("hello", basic_conv("hello"))
|
||||
assert_equal("hello", basic_conv(" hello "))
|
||||
assert_equal("hello", basic_conv(" \t \t hello\t\t"))
|
||||
|
||||
assert_equal("1\n 2\n 3", basic_conv("1\n 2\n 3"))
|
||||
assert_equal("1\n 2\n 3", basic_conv(" 1\n 2\n 3"))
|
||||
|
||||
assert_equal("1\n 2\n 3\n1\n 2", basic_conv("1\n 2\n 3\n1\n 2"))
|
||||
assert_equal("1\n 2\n 3\n1\n 2", basic_conv(" 1\n 2\n 3\n 1\n 2"))
|
||||
|
||||
assert_equal("1\n 2\n\n 3", basic_conv(" 1\n 2\n\n 3"))
|
||||
end
|
||||
|
||||
def test_types
|
||||
str = "now is the time"
|
||||
line_types(str, 'P')
|
||||
|
||||
str = "now is the time\nfor all good men"
|
||||
line_types(str, 'PP')
|
||||
|
||||
str = "now is the time\n code\nfor all good men"
|
||||
line_types(str, 'PVP')
|
||||
|
||||
str = "now is the time\n code\n more code\nfor all good men"
|
||||
line_types(str, 'PVVP')
|
||||
|
||||
str = "now is\n---\nthe time"
|
||||
line_types(str, 'PRP')
|
||||
|
||||
str = %{\
|
||||
now is
|
||||
* l1
|
||||
* l2
|
||||
the time}
|
||||
line_types(str, 'PLLP')
|
||||
|
||||
str = %{\
|
||||
now is
|
||||
* l1
|
||||
l1+
|
||||
* l2
|
||||
the time}
|
||||
line_types(str, 'PLPLP')
|
||||
|
||||
str = %{\
|
||||
now is
|
||||
* l1
|
||||
* l1.1
|
||||
* l2
|
||||
the time}
|
||||
line_types(str, 'PLLLP')
|
||||
|
||||
str = %{\
|
||||
now is
|
||||
* l1
|
||||
* l1.1
|
||||
text
|
||||
code
|
||||
code
|
||||
|
||||
text
|
||||
* l2
|
||||
the time}
|
||||
line_types(str, 'PLLPVVBPLP')
|
||||
|
||||
str = %{\
|
||||
now is
|
||||
1. l1
|
||||
* l1.1
|
||||
2. l2
|
||||
the time}
|
||||
line_types(str, 'PLLLP')
|
||||
|
||||
str = %{\
|
||||
now is
|
||||
[cat] l1
|
||||
* l1.1
|
||||
[dog] l2
|
||||
the time}
|
||||
line_types(str, 'PLLLP')
|
||||
|
||||
str = %{\
|
||||
now is
|
||||
[cat] l1
|
||||
continuation
|
||||
[dog] l2
|
||||
the time}
|
||||
line_types(str, 'PLPLP')
|
||||
def line_types(str, expected)
|
||||
p = SM::SimpleMarkup.new
|
||||
mock = MockOutput.new
|
||||
p.convert(str, mock)
|
||||
assert_equal(expected, p.get_line_types.map{|type| type.to_s[0,1]}.join(''))
|
||||
end
|
||||
|
||||
def test_groups
|
||||
|
@ -347,8 +227,165 @@ class TestParse < Test::Unit::TestCase
|
|||
"L1: ListEnd\n",
|
||||
"L0: Paragraph\nthe time"
|
||||
])
|
||||
end
|
||||
|
||||
|
||||
def test_headings
|
||||
str = "= heading one"
|
||||
line_groups(str,
|
||||
[ "L0: Heading\nheading one"
|
||||
])
|
||||
|
||||
str = "=== heading three"
|
||||
line_groups(str,
|
||||
[ "L0: Heading\nheading three"
|
||||
])
|
||||
|
||||
str = "text\n === heading three"
|
||||
line_groups(str,
|
||||
[ "L0: Paragraph\ntext",
|
||||
"L0: Verbatim\n === heading three\n"
|
||||
])
|
||||
|
||||
str = "text\n code\n === heading three"
|
||||
line_groups(str,
|
||||
[ "L0: Paragraph\ntext",
|
||||
"L0: Verbatim\n code\n === heading three\n"
|
||||
])
|
||||
|
||||
str = "text\n code\n=== heading three"
|
||||
line_groups(str,
|
||||
[ "L0: Paragraph\ntext",
|
||||
"L0: Verbatim\n code\n",
|
||||
"L0: Heading\nheading three"
|
||||
])
|
||||
|
||||
end
|
||||
|
||||
def test_list_split
|
||||
str = %{\
|
||||
now is
|
||||
* l1
|
||||
1. n1
|
||||
2. n2
|
||||
* l2
|
||||
the time}
|
||||
line_groups(str,
|
||||
[ "L0: Paragraph\nnow is",
|
||||
"L1: ListStart\n",
|
||||
"L1: ListItem\nl1",
|
||||
"L1: ListEnd\n",
|
||||
"L1: ListStart\n",
|
||||
"L1: ListItem\nn1",
|
||||
"L1: ListItem\nn2",
|
||||
"L1: ListEnd\n",
|
||||
"L1: ListStart\n",
|
||||
"L1: ListItem\nl2",
|
||||
"L1: ListEnd\n",
|
||||
"L0: Paragraph\nthe time"
|
||||
])
|
||||
|
||||
end
|
||||
|
||||
def test_tabs
|
||||
str = "hello\n dave"
|
||||
assert_equal(str, basic_conv(str))
|
||||
str = "hello\n\tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = "hello\n \tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = "hello\n \tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = "hello\n \tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = "hello\n \tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = "hello\n \tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = "hello\n \tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = "hello\n \tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = "hello\n \tdave"
|
||||
assert_equal("hello\n dave", basic_conv(str))
|
||||
str = ".\t\t."
|
||||
assert_equal(". .", basic_conv(str))
|
||||
end
|
||||
|
||||
def test_types
|
||||
str = "now is the time"
|
||||
line_types(str, 'P')
|
||||
|
||||
str = "now is the time\nfor all good men"
|
||||
line_types(str, 'PP')
|
||||
|
||||
str = "now is the time\n code\nfor all good men"
|
||||
line_types(str, 'PVP')
|
||||
|
||||
str = "now is the time\n code\n more code\nfor all good men"
|
||||
line_types(str, 'PVVP')
|
||||
|
||||
str = "now is\n---\nthe time"
|
||||
line_types(str, 'PRP')
|
||||
|
||||
str = %{\
|
||||
now is
|
||||
* l1
|
||||
* l2
|
||||
the time}
|
||||
line_types(str, 'PLLP')
|
||||
|
||||
str = %{\
|
||||
now is
|
||||
* l1
|
||||
l1+
|
||||
* l2
|
||||
the time}
|
||||
line_types(str, 'PLPLP')
|
||||
|
||||
str = %{\
|
||||
now is
|
||||
* l1
|
||||
* l1.1
|
||||
* l2
|
||||
the time}
|
||||
line_types(str, 'PLLLP')
|
||||
|
||||
str = %{\
|
||||
now is
|
||||
* l1
|
||||
* l1.1
|
||||
text
|
||||
code
|
||||
code
|
||||
|
||||
text
|
||||
* l2
|
||||
the time}
|
||||
line_types(str, 'PLLPVVBPLP')
|
||||
|
||||
str = %{\
|
||||
now is
|
||||
1. l1
|
||||
* l1.1
|
||||
2. l2
|
||||
the time}
|
||||
line_types(str, 'PLLLP')
|
||||
|
||||
str = %{\
|
||||
now is
|
||||
[cat] l1
|
||||
* l1.1
|
||||
[dog] l2
|
||||
the time}
|
||||
line_types(str, 'PLLLP')
|
||||
|
||||
str = %{\
|
||||
now is
|
||||
[cat] l1
|
||||
continuation
|
||||
[dog] l2
|
||||
the time}
|
||||
line_types(str, 'PLPLP')
|
||||
end
|
||||
|
||||
def test_verbatim_merge
|
||||
|
@ -440,64 +477,20 @@ class TestParse < Test::Unit::TestCase
|
|||
|
||||
|
||||
end
|
||||
|
||||
def test_list_split
|
||||
str = %{\
|
||||
now is
|
||||
* l1
|
||||
1. n1
|
||||
2. n2
|
||||
* l2
|
||||
the time}
|
||||
line_groups(str,
|
||||
[ "L0: Paragraph\nnow is",
|
||||
"L1: ListStart\n",
|
||||
"L1: ListItem\nl1",
|
||||
"L1: ListEnd\n",
|
||||
"L1: ListStart\n",
|
||||
"L1: ListItem\nn1",
|
||||
"L1: ListItem\nn2",
|
||||
"L1: ListEnd\n",
|
||||
"L1: ListStart\n",
|
||||
"L1: ListItem\nl2",
|
||||
"L1: ListEnd\n",
|
||||
"L0: Paragraph\nthe time"
|
||||
])
|
||||
|
||||
def test_whitespace
|
||||
assert_equal("hello", basic_conv("hello"))
|
||||
assert_equal("hello", basic_conv(" hello "))
|
||||
assert_equal("hello", basic_conv(" \t \t hello\t\t"))
|
||||
|
||||
assert_equal("1\n 2\n 3", basic_conv("1\n 2\n 3"))
|
||||
assert_equal("1\n 2\n 3", basic_conv(" 1\n 2\n 3"))
|
||||
|
||||
assert_equal("1\n 2\n 3\n1\n 2", basic_conv("1\n 2\n 3\n1\n 2"))
|
||||
assert_equal("1\n 2\n 3\n1\n 2", basic_conv(" 1\n 2\n 3\n 1\n 2"))
|
||||
|
||||
assert_equal("1\n 2\n\n 3", basic_conv(" 1\n 2\n\n 3"))
|
||||
end
|
||||
|
||||
|
||||
def test_headings
|
||||
str = "= heading one"
|
||||
line_groups(str,
|
||||
[ "L0: Heading\nheading one"
|
||||
])
|
||||
|
||||
str = "=== heading three"
|
||||
line_groups(str,
|
||||
[ "L0: Heading\nheading three"
|
||||
])
|
||||
|
||||
str = "text\n === heading three"
|
||||
line_groups(str,
|
||||
[ "L0: Paragraph\ntext",
|
||||
"L0: Verbatim\n === heading three\n"
|
||||
])
|
||||
|
||||
str = "text\n code\n === heading three"
|
||||
line_groups(str,
|
||||
[ "L0: Paragraph\ntext",
|
||||
"L0: Verbatim\n code\n === heading three\n"
|
||||
])
|
||||
|
||||
str = "text\n code\n=== heading three"
|
||||
line_groups(str,
|
||||
[ "L0: Paragraph\ntext",
|
||||
"L0: Verbatim\n code\n",
|
||||
"L0: Heading\nheading three"
|
||||
])
|
||||
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
|
@ -1,39 +1,38 @@
|
|||
require "test/unit"
|
||||
|
||||
$:.unshift "../../.."
|
||||
|
||||
require "rdoc/markup/simple_markup/inline"
|
||||
|
||||
class TestInline < Test::Unit::TestCase
|
||||
|
||||
class TestSimpleMarkupAttributeManager < Test::Unit::TestCase
|
||||
|
||||
def setup
|
||||
@am = SM::AttributeManager.new
|
||||
|
||||
@bold_on = @am.changed_attribute_by_name([], [:BOLD])
|
||||
@bold_off = @am.changed_attribute_by_name([:BOLD], [])
|
||||
|
||||
|
||||
@tt_on = @am.changed_attribute_by_name([], [:TT])
|
||||
@tt_off = @am.changed_attribute_by_name([:TT], [])
|
||||
|
||||
|
||||
@em_on = @am.changed_attribute_by_name([], [:EM])
|
||||
@em_off = @am.changed_attribute_by_name([:EM], [])
|
||||
|
||||
|
||||
@bold_em_on = @am.changed_attribute_by_name([], [:BOLD] | [:EM])
|
||||
@bold_em_off = @am.changed_attribute_by_name([:BOLD] | [:EM], [])
|
||||
|
||||
|
||||
@em_then_bold = @am.changed_attribute_by_name([:EM], [:EM] | [:BOLD])
|
||||
|
||||
|
||||
@em_to_bold = @am.changed_attribute_by_name([:EM], [:BOLD])
|
||||
|
||||
|
||||
@am.add_word_pair("{", "}", :WOMBAT)
|
||||
@wombat_on = @am.changed_attribute_by_name([], [:WOMBAT])
|
||||
@wombat_off = @am.changed_attribute_by_name([:WOMBAT], [])
|
||||
end
|
||||
|
||||
def crossref(text)
|
||||
crossref_bitmap = SM::Attribute.bitmap_for(:_SPECIAL_) |
|
||||
SM::Attribute.bitmap_for(:CROSSREF)
|
||||
|
||||
[ @am.changed_attribute_by_name([], [:CROSSREF] | [:_SPECIAL_]),
|
||||
SM::Special.new(33, text),
|
||||
SM::Special.new(crossref_bitmap, text),
|
||||
@am.changed_attribute_by_name([:CROSSREF] | [:_SPECIAL_], [])
|
||||
]
|
||||
end
|
||||
|
@ -44,9 +43,9 @@ class TestInline < Test::Unit::TestCase
|
|||
\b([A-Z]\w+(::\w+)*)
|
||||
| \#\w+[!?=]?
|
||||
| \b\w+([_\/\.]+\w+)+[!?=]?
|
||||
)/x,
|
||||
)/x,
|
||||
:CROSSREF)
|
||||
|
||||
|
||||
assert_equal(["cat"], @am.flow("cat"))
|
||||
|
||||
assert_equal(["cat ", crossref("#fred"), " dog"].flatten,
|
||||
|
@ -101,35 +100,33 @@ class TestInline < Test::Unit::TestCase
|
|||
assert_equal(["cat ", @em_on, "and", @em_off, " ", @bold_on, "dog", @bold_off],
|
||||
@am.flow("cat _and_ *dog*"))
|
||||
|
||||
assert_equal(["cat ", @em_on, "a__nd", @em_off, " ", @bold_on, "dog", @bold_off],
|
||||
assert_equal(["cat ", @em_on, "a__nd", @em_off, " ", @bold_on, "dog", @bold_off],
|
||||
@am.flow("cat _a__nd_ *dog*"))
|
||||
end
|
||||
|
||||
def test_html_like
|
||||
assert_equal(["cat ", @tt_on, "dog", @tt_off], @am.flow("cat <tt>dog</Tt>"))
|
||||
|
||||
assert_equal(["cat ", @em_on, "and", @em_off, " ", @bold_on, "dog", @bold_off],
|
||||
assert_equal(["cat ", @em_on, "and", @em_off, " ", @bold_on, "dog", @bold_off],
|
||||
@am.flow("cat <i>and</i> <B>dog</b>"))
|
||||
|
||||
assert_equal(["cat ", @em_on, "and ", @em_then_bold, "dog", @bold_em_off],
|
||||
|
||||
assert_equal(["cat ", @em_on, "and ", @em_then_bold, "dog", @bold_em_off],
|
||||
@am.flow("cat <i>and <B>dog</B></I>"))
|
||||
|
||||
assert_equal(["cat ", @em_on, "and ", @em_to_bold, "dog", @bold_off],
|
||||
|
||||
assert_equal(["cat ", @em_on, "and ", @em_to_bold, "dog", @bold_off],
|
||||
@am.flow("cat <i>and </i><b>dog</b>"))
|
||||
|
||||
assert_equal(["cat ", @em_on, "and ", @em_to_bold, "dog", @bold_off],
|
||||
|
||||
assert_equal(["cat ", @em_on, "and ", @em_to_bold, "dog", @bold_off],
|
||||
@am.flow("cat <i>and <b></i>dog</b>"))
|
||||
|
||||
assert_equal([@tt_on, "cat", @tt_off, " ", @em_on, "and ", @em_to_bold, "dog", @bold_off],
|
||||
|
||||
assert_equal([@tt_on, "cat", @tt_off, " ", @em_on, "and ", @em_to_bold, "dog", @bold_off],
|
||||
@am.flow("<tt>cat</tt> <i>and <b></i>dog</b>"))
|
||||
|
||||
assert_equal(["cat ", @em_on, "and ", @em_then_bold, "dog", @bold_em_off],
|
||||
assert_equal(["cat ", @em_on, "and ", @em_then_bold, "dog", @bold_em_off],
|
||||
@am.flow("cat <i>and <b>dog</b></i>"))
|
||||
|
||||
assert_equal(["cat ", @bold_em_on, "and", @bold_em_off, " dog"],
|
||||
|
||||
assert_equal(["cat ", @bold_em_on, "and", @bold_em_off, " dog"],
|
||||
@am.flow("cat <i><b>and</b></i> dog"))
|
||||
|
||||
|
||||
end
|
||||
|
||||
def test_protect
|
||||
|
@ -137,12 +134,12 @@ class TestInline < Test::Unit::TestCase
|
|||
|
||||
assert_equal(["cat <tt>dog</Tt>"], @am.flow("cat \\<tt>dog</Tt>"))
|
||||
|
||||
assert_equal(["cat ", @em_on, "and", @em_off, " <B>dog</b>"],
|
||||
assert_equal(["cat ", @em_on, "and", @em_off, " <B>dog</b>"],
|
||||
@am.flow("cat <i>and</i> \\<B>dog</b>"))
|
||||
|
||||
|
||||
assert_equal(["*word* or <b>text</b>"], @am.flow("\\*word* or \\<b>text</b>"))
|
||||
|
||||
assert_equal(["_cat_", @em_on, "dog", @em_off],
|
||||
assert_equal(["_cat_", @em_on, "dog", @em_off],
|
||||
@am.flow("\\_cat_<i>dog</i>"))
|
||||
end
|
||||
|
||||
|
@ -151,4 +148,6 @@ class TestInline < Test::Unit::TestCase
|
|||
@am.flow("cat {and} dog"))
|
||||
# assert_equal(["cat {and} dog" ], @am.flow("cat \\{and} dog"))
|
||||
end
|
||||
|
||||
end
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue