1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* lib/rdoc*: Updated to RDoc 4.0 (pre-release)

* bin/rdoc:  ditto
* test/rdoc:  ditto
* NEWS:  Updated with RDoc 4.0 information


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
drbrain 2012-11-27 04:28:14 +00:00
parent c72f0daa87
commit 1c279a7d27
233 changed files with 45019 additions and 5100 deletions

View file

@ -1,14 +1,12 @@
# coding: utf-8
require 'pp'
require 'rubygems'
require 'minitest/autorun'
require 'rdoc/markup'
require 'rdoc/test_case'
class TestRDocMarkupParser < MiniTest::Unit::TestCase
class TestRDocMarkupParser < RDoc::TestCase
def setup
@RM = RDoc::Markup
super
@RMP = @RM::Parser
end
@ -30,6 +28,19 @@ class TestRDocMarkupParser < MiniTest::Unit::TestCase
assert_equal @RM::Heading.new(3, 'heading three'), parser.build_heading(3)
end
def test_char_pos
parser = @RMP.new
s = parser.setup_scanner 'cät'
s.scan(/\S+/)
if Object.const_defined? :Encoding then
assert_equal 3, parser.char_pos(s.pos)
else
assert_equal 4, parser.char_pos(s.pos)
end
end
def test_get
parser = util_parser
@ -148,13 +159,11 @@ the time
STR
expected = [
@RM::List.new(:BULLET, *[
@RM::ListItem.new(nil,
@RM::Paragraph.new('l1', 'l1+')),
@RM::ListItem.new(nil,
@RM::Paragraph.new('l2')),
]),
]
list(:BULLET,
item(nil,
para('l1 ', 'l1+')),
item(nil,
para('l2')))]
assert_equal expected, @RMP.parse(str).parts
end
@ -191,16 +200,16 @@ the time
STR
expected = [
@RM::List.new(:BULLET, *[
@RM::ListItem.new(nil,
@RM::Paragraph.new('l1'),
@RM::List.new(:BULLET, *[
@RM::ListItem.new(nil,
@RM::Paragraph.new('l1.1', 'text'),
@RM::Verbatim.new("code\n", " code\n"),
@RM::Paragraph.new('text'))])),
@RM::ListItem.new(nil,
@RM::Paragraph.new('l2'))])]
list(:BULLET,
item(nil,
para('l1'),
list(:BULLET,
item(nil,
para('l1.1 ', 'text'),
verb("code\n", " code\n"),
para('text')))),
item(nil,
para('l2')))]
assert_equal expected, @RMP.parse(str).parts
end
@ -326,11 +335,11 @@ the time
STR
expected = [
@RM::List.new(:LABEL, *[
@RM::ListItem.new('one',
@RM::Paragraph.new('item one')),
@RM::ListItem.new('two',
@RM::Paragraph.new('item two'))])]
list(:LABEL,
item(%w[one],
para('item one')),
item(%w[two],
para('item two')))]
assert_equal expected, @RMP.parse(str).parts
end
@ -343,19 +352,33 @@ the time
STR
expected = [
@RM::List.new(:LABEL, *[
@RM::ListItem.new('cat',
@RM::Paragraph.new('l1'),
@RM::List.new(:BULLET, *[
@RM::ListItem.new(nil,
@RM::Paragraph.new('l1.1'))])),
@RM::ListItem.new('dog',
@RM::Paragraph.new('l2'))])]
list(:LABEL,
item(%w[cat],
para('l1'),
list(:BULLET,
item(nil,
para('l1.1')))),
item(%w[dog],
para('l2')))]
assert_equal expected, @RMP.parse(str).parts
end
def test_parse_label_multiline
def test_parse_label_multi_label
str = <<-STR
[one]
[two] some description
STR
expected = [
list(:LABEL,
item(%w[one two],
para('some description')))]
assert_equal expected, @RMP.parse(str).parts
end
def test_parse_label_multi_line
str = <<-STR
[cat] l1
continuation
@ -363,11 +386,11 @@ the time
STR
expected = [
@RM::List.new(:LABEL, *[
@RM::ListItem.new('cat',
@RM::Paragraph.new('l1', 'continuation')),
@RM::ListItem.new('dog',
@RM::Paragraph.new('l2'))])]
list(:LABEL,
item(%w[cat],
para('l1 ', 'continuation')),
item(%w[dog],
para('l2')))]
assert_equal expected, @RMP.parse(str).parts
end
@ -381,12 +404,11 @@ the time
STR
expected = [
@RM::List.new(:LABEL, *[
@RM::ListItem.new('one',
@RM::Paragraph.new('item one')),
@RM::ListItem.new('two',
@RM::Paragraph.new('item two')),
])]
list(:LABEL,
item(%w[one],
para('item one')),
item(%w[two],
para('item two')))]
assert_equal expected, @RMP.parse(str).parts
end
@ -443,6 +465,17 @@ a. 新しい機能
assert_equal expected, @RMP.parse(str).parts
end
def test_parse_line_break
str = "now is\nthe time \nfor all"
expected = [
para('now is ', 'the time'),
blank_line,
para('for all')]
assert_equal expected, @RMP.parse(str).parts
end
def test_parse_list_list_1
str = <<-STR
10. para 1
@ -456,16 +489,16 @@ a. 新しい機能
STR
expected = [
@RM::List.new(:NUMBER, *[
@RM::ListItem.new(nil, *[
@RM::Paragraph.new('para 1'),
@RM::BlankLine.new,
@RM::List.new(:LABEL, *[
@RM::ListItem.new('label 1', *[
@RM::Paragraph.new('para 1.1'),
@RM::BlankLine.new,
@RM::Verbatim.new("code\n"),
@RM::Paragraph.new('para 1.2')])])])])]
list(:NUMBER,
item(nil,
para('para 1'),
blank_line,
list(:LABEL,
item(%w[label\ 1],
para('para 1.1'),
blank_line,
verb("code\n"),
para('para 1.2')))))]
assert_equal expected, @RMP.parse(str).parts
end
@ -479,15 +512,15 @@ a. 新しい機能
STR
expected = [
@RM::List.new(:NUMBER, *[
@RM::ListItem.new(nil, *[
@RM::Paragraph.new('para'),
@RM::BlankLine.new,
@RM::List.new(:NOTE, *[
@RM::ListItem.new('label 1',
@RM::Paragraph.new('text 1')),
@RM::ListItem.new('label 2',
@RM::Paragraph.new('text 2'))])])])]
list(:NUMBER,
item(nil,
para('para'),
blank_line,
list(:NOTE,
item(%w[label\ 1],
para('text 1')),
item(%w[label\ 2],
para('text 2')))))]
assert_equal expected, @RMP.parse(str).parts
end
@ -546,11 +579,11 @@ two:: item two
STR
expected = [
@RM::List.new(:NOTE, *[
@RM::ListItem.new('one',
@RM::Paragraph.new('item one')),
@RM::ListItem.new('two',
@RM::Paragraph.new('item two'))])]
list(:NOTE,
item(%w[one],
para('item one')),
item(%w[two],
para('item two')))]
assert_equal expected, @RMP.parse(str).parts
end
@ -562,11 +595,9 @@ two::
STR
expected = [
@RM::List.new(:NOTE, *[
@RM::ListItem.new('one',
@RM::BlankLine.new),
@RM::ListItem.new('two',
@RM::BlankLine.new)])]
list(:NOTE,
item(%w[one two],
blank_line))]
assert_equal expected, @RMP.parse(str).parts
end
@ -577,11 +608,11 @@ one:: two::
STR
expected = [
@RM::List.new(:NOTE, *[
@RM::ListItem.new('one',
@RM::List.new(:NOTE, *[
@RM::ListItem.new('two',
@RM::BlankLine.new)]))])]
list(:NOTE,
item(%w[one],
list(:NOTE,
item(%w[two],
blank_line))))]
assert_equal expected, @RMP.parse(str).parts
end
@ -594,14 +625,14 @@ one:: two::
STR
expected = [
@RM::List.new(:NUMBER, *[
@RM::ListItem.new(nil,
@RM::Paragraph.new('l1'),
@RM::List.new(:BULLET, *[
@RM::ListItem.new(nil,
@RM::Paragraph.new('l1.1'))])),
@RM::ListItem.new(nil,
@RM::Paragraph.new('l2'))])]
list(:NUMBER,
item(nil,
para('l1'),
list(:BULLET,
item(nil,
para('l1.1')))),
item(nil,
para('l2')))]
assert_equal expected, @RMP.parse(str).parts
end
@ -623,7 +654,7 @@ for all good men
def test_parse_paragraph_multiline
str = "now is the time\nfor all good men"
expected = @RM::Paragraph.new 'now is the time for all good men'
expected = @RM::Paragraph.new 'now is the time ', 'for all good men'
assert_equal [expected], @RMP.parse(str).parts
end
@ -1185,6 +1216,38 @@ the time
assert_equal expected, @RMP.tokenize(str)
end
def test_tokenize_label_newline
str = <<-STR
[cat]
l1
STR
expected = [
[:LABEL, 'cat', 0, 0],
[:NEWLINE, "\n", 5, 0],
[:TEXT, 'l1', 2, 1],
[:NEWLINE, "\n", 4, 1],
]
assert_equal expected, @RMP.tokenize(str)
end
def test_tokenize_label_newline_windows
str = <<-STR
[cat]\r
l1\r
STR
expected = [
[:LABEL, 'cat', 0, 0],
[:NEWLINE, "\n", 6, 0],
[:TEXT, 'l1', 2, 1],
[:NEWLINE, "\n", 5, 1],
]
assert_equal expected, @RMP.tokenize(str)
end
def test_tokenize_lalpha
str = <<-STR
a. l1
@ -1203,6 +1266,53 @@ b. l1.1
assert_equal expected, @RMP.tokenize(str)
end
def test_tokenize_line_break
str = "now is\nthe time \nfor all\n"
expected = [
[:TEXT, 'now is', 0, 0],
[:NEWLINE, "\n", 6, 0],
[:TEXT, 'the time', 0, 1],
[:BREAK, " ", 8, 1],
[:NEWLINE, "\n", 10, 1],
[:TEXT, 'for all', 0, 2],
[:NEWLINE, "\n", 7, 2],
]
assert_equal expected, @RMP.tokenize(str)
end
def test_tokenize_line_break_long
str = "now is\nthe time \nfor all\n"
expected = [
[:TEXT, 'now is', 0, 0],
[:NEWLINE, "\n", 6, 0],
[:TEXT, 'the time ', 0, 1],
[:BREAK, ' ', 9, 1],
[:NEWLINE, "\n", 11, 1],
[:TEXT, 'for all', 0, 2],
[:NEWLINE, "\n", 7, 2],
]
assert_equal expected, @RMP.tokenize(str)
end
def test_tokenize_line_break_no_short
str = "now is\nthe time \nfor all\n"
expected = [
[:TEXT, 'now is', 0, 0],
[:NEWLINE, "\n", 6, 0],
[:TEXT, 'the time ', 0, 1],
[:NEWLINE, "\n", 9, 1],
[:TEXT, 'for all', 0, 2],
[:NEWLINE, "\n", 7, 2],
]
assert_equal expected, @RMP.tokenize(str)
end
def test_tokenize_note
str = <<-STR
cat:: l1
@ -1237,6 +1347,64 @@ dog::
assert_equal expected, @RMP.tokenize(str)
end
def test_tokenize_note_newline
str = <<-STR
cat::
l1
STR
expected = [
[:NOTE, 'cat', 0, 0],
[:NEWLINE, "\n", 5, 0],
[:TEXT, 'l1', 2, 1],
[:NEWLINE, "\n", 4, 1],
]
assert_equal expected, @RMP.tokenize(str)
end
def test_tokenize_note_utf_8
skip 'Encoding not implemented' unless Object.const_defined? :Encoding
str = <<-STR
cät:: l1a
l1b
døg:: l2a
l2b
STR
expected = [
[:NOTE, 'cät', 0, 0],
[:TEXT, 'l1a', 6, 0],
[:NEWLINE, "\n", 9, 0],
[:TEXT, 'l1b', 6, 1],
[:NEWLINE, "\n", 9, 1],
[:NOTE, 'døg', 0, 2],
[:TEXT, 'l2a', 6, 2],
[:NEWLINE, "\n", 9, 2],
[:TEXT, 'l2b', 6, 3],
[:NEWLINE, "\n", 9, 3],
]
assert_equal expected, @RMP.tokenize(str)
end
def test_tokenize_note_newline_windows
str = <<-STR
cat::\r
l1\r
STR
expected = [
[:NOTE, 'cat', 0, 0],
[:NEWLINE, "\n", 6, 0],
[:TEXT, 'l1', 2, 1],
[:NEWLINE, "\n", 5, 1],
]
assert_equal expected, @RMP.tokenize(str)
end
def test_tokenize_note_not
str = <<-STR
Cat::Dog
@ -1363,6 +1531,24 @@ for all
assert_equal expected, @RMP.tokenize(str)
end
def test_tokenize_rule_windows
str = <<-STR
---\r
--- blah ---\r
STR
expected = [
[:RULE, 1, 0, 0],
[:NEWLINE, "\n", 4, 0],
[:NEWLINE, "\n", 0, 1],
[:TEXT, "--- blah ---", 0, 2],
[:NEWLINE, "\n", 13, 2],
]
assert_equal expected, @RMP.tokenize(str)
end
def test_tokenize_ualpha
str = <<-STR
A. l1
@ -1438,6 +1624,19 @@ Example heading:
assert_equal expected, @RMP.tokenize(str)
end
def test_token_pos
parser = @RMP.new
s = parser.setup_scanner 'cät'
s.scan(/\S+/)
if Object.const_defined? :Encoding then
assert_equal [3, 0], parser.token_pos(s.pos)
else
assert_equal [4, 0], parser.token_pos(s.pos)
end
end
# HACK move to Verbatim test case
def test_verbatim_normalize
v = @RM::Verbatim.new "foo\n", "\n", "\n", "bar\n"